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