Heroku找不到模块'lodash / object / assign'

时间:2016-10-02 12:39:28

标签: node.js heroku npm lodash

我遇到了部署到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) 

1 个答案:

答案 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