一尘不染

Node.js应用程序可在本地运行,但heroku说缺少模块

node.js

我使用Node.JS和Socket.IO创建了一个简单的聊天应用程序,在本地一切正常,但是当我将其推送到heroku时,它给了我一个应用程序错误,当我检查日志时,这是错误:

Error: Cannot find module 'indexof'
    at Function.Module._resolveFilename <module.js:338:15>
    at Function.Module._load <module.js:280:25>
    at Module.require <module.js:364:17>
    at require <module.js:380:17>
    at Object.<anonymous> </app/node_modules/socket.io/node_modules/socket.io-parser/node_modules/emitter/index.js:6:13>
    at Module._compile <module.js:456:26>
    at Object.Module._extensions..js <module.js:474:10>
    at Module.load <module.js:356:32>
    at Functin.Module._load <module.js:312:12>
    at Module.require <module.js:364:17>

因此,我发现indexof是Socket.IO使用的模块,它位于我的node_modules文件夹中,但是由于某种原因,它没有被推送到heroku或只是未被识别。我将模块重新安装了5-6次,并重新创建了应用程序,但仍然给我同样的错误。我的package.json文件具有3个依赖项:Express,Socket.IO和Jade


阅读 215

收藏
2020-07-07

共1个答案

一尘不染

好了,所以2小时后我发现了问题所在,包含indexof模块的多个名为“发射器”的文件夹也有一个gitignore文件,使git忽略了该模块,不知道为什么仍然存在,但是删除它们解决了问题

2020-07-07