2016-10-02 73 views
1

我遇到了部署到Heroku的問題。在我通過簡單的rm -f node_modules發生同樣的錯誤後,在本地運行它,然後用npm install重新安裝它們。但是當我部署到heroku時,錯誤不斷髮生。甚至與bash一起執行相同的步驟。Heroku無法找到模塊'lodash/object/assign'

然後,我使用npm shrinkwrap並注意到aws-sdk對lodash的依賴性vs 3.5.0 < 3.6.0。所以我相應地在我的package.json中設置了lodash版本。這一切仍然在本地運行,但不斷在heroku上崩潰。

節點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) 

回答

2

原來的Heroku有Buildpack這是緩存node_modules。關閉緩存沒有幫助,所以我不得不使用heroku插件清除緩存的工作。

https://github.com/heroku/heroku-repo

heroku repo:purge_cache -a appname 

以下據稱還應該工作櫃面上面沒有

heroku config:set NODE_MODULES_TRUE=false