我遇到了部署到Heroku的问题。通过简单的rm -f node_modules然后使用npm install重新安装它们后,我在本地运行了同样的错误。但是当我部署到heroku时,错误不断发生。甚至用bash来执行相同的步骤。
然后我使用了npm shrinkwrap,注意到aws-sdk依赖于lodash vs 3.5.0< 3.6.0。所以我相应地在我的package.json中设置了lodash版本。 它仍然在本地运行,但仍然在heroku上崩溃。
Node v5.0.0 NPM v3.3.6
"dependencies": {
"aws-sdk": "^2.6.6",
"bluebird": "^3.4.6",
"body-parser": "^1.15.2",
"express": "^4.14.0",
"goosepage": "0.0.1",
"lodash": "^3.5.0"
}
额外的heroku日志
Error: Cannot find module 'lodash/object/assign'
Function.Module._resolveFilename (module.js:337:15)
Function.Module._load (module.js:287:25)
Module.require (module.js:366:17)
require (module.js:385:17)
Object.<anonymous> (/app/node_modules/xmlbuilder/lib/index.js:5:12)
Object.<anonymous> (/app/node_modules/xmlbuilder/lib/index.js:14:4)
Module._compile (module.js:425:26)
Object.Module._extensions..js (module.js:432:10)
Module.load (module.js:356:32)
Function.Module._load (module.js:311:12)
Module.require (module.js:366:17)
require (module.js:385:17)
Object.<anonymous> (/app/node_modules/aws-sdk/lib/xml/builder.js:2:15)
Module._compile (module.js:425:26)
Object.Module._extensions..js (module.js:432:10)
Module.load (module.js:356:32)
答案 0 :(得分:2)
原来Heroku有一个缓存node_modules的Buildpack。关闭缓存没有帮助,所以我不得不使用heroku插件清除缓存的工作。
https://github.com/heroku/heroku-repo
heroku repo:purge_cache -a appname
以下据说也应该起作用,上面没有
heroku config:set NODE_MODULES_TRUE=false