我的应用程序正在本地查找,但在部署到heroku时,无法找到我的一个模块。我使用.gitignore文件忽略node_modules文件夹,并允许heroku安装正确的依赖项。当我运行heroku open
命令并使用heroku logs --tail
搜索日志时,它会显示此错误。
我得到的错误是:
2015-10-21T14:42:58.415140+00:00 app[web.1]: Error: Cannot find module 'mongodb'
2015-10-21T14:42:58.415141+00:00 app[web.1]: at Function.Module._resolveFilename (module.js:336:15)
2015-10-21T14:42:58.415142+00:00 app[web.1]: at Function.Module._load (module.js:278:25)
2015-10-21T14:42:58.415142+00:00 app[web.1]: at Module.require (module.js:365:17)
2015-10-21T14:42:58.415143+00:00 app[web.1]: at require (module.js:384:17)
2015-10-21T14:42:58.415144+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/mongoskin/lib/index.js:14:13)
2015-10-21T14:42:58.415145+00:00 app[web.1]: at Module._compile (module.js:460:26)
2015-10-21T14:42:58.415145+00:00 app[web.1]: at Object.Module._extensions..js (module.js:478:10)
2015-10-21T14:42:58.415146+00:00 app[web.1]: at Module.load (module.js:355:32)
2015-10-21T14:42:58.415146+00:00 app[web.1]: at Function.Module._load (module.js:310:12)
2015-10-21T14:42:58.415147+00:00 app[web.1]: at Module.require (module.js:365:17)
2015-10-21T14:42:59.337084+00:00 heroku[web.1]: Process exited with status 1
2015-10-21T14:42:59.348953+00:00 heroku[web.1]: State changed from starting to crashed
本地我的app结构如下:
app/
config/
node_modules/
..
-mongodb
-mongoskin
..
public/
当我使用bash搜索heroku目录时,我没有看到mongodb模块。可能是什么问题?
答案 0 :(得分:2)
我已经找到了答案。我在本地删除了node_modules文件并再次运行npm install
,节点显示此警告:
npm WARN peerDependencies The peer dependency mongodb@~2.0 included from mongoskin will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
我必须在我的package.json文件中明确声明对mongodb的mongoskin依赖,如下所示:
"dependencies": {
...
"mongoskin": "2.0.3",
"mongodb": "^2.0.46",
...
}
我把它推到了heroku并且有效。