2

當我嘗試部署以下回購,以CF/BlueMix我得到了錯誤的「devDependencies」:部署的NodeJS上CF問題/ BlueMix

Error: Cannot find module 'webpack' 

如果我添加的WebPack到DEP我有錯誤

Error: Cannot find module 'postcss-cssnext' 

,並繼續對其他開發DEP ....

哪個devDependencies的一部分,不部署不應該只安裝了「刺」的依賴?

這是回購:https://github.com/Hashnode/mern-starter

npm run bs運行構建本地和我放在manifest.yml以下

--- 
applications: 
- name: myapp 
    buildpack: nodejs_buildpack 
    memory: 512M 
    command: npm run start:prod 
    services: 
    - mong 

這可能是faliing上devdependencies的原因是什麼?

回答

1

您是否正在使用項目中的node_modules文件夾推送Bluemix?如果是,請嘗試完全刪除並重新打印。

此外,

只需添加一行node_modules在.cfignore文件忽略node_modules目錄。 buildpack將在您的雲代工容器中運行節點安裝。此外,我會建議你做一個比照刪除從緩存中刪除它,然後做一個CF再次

來源推:unable to push node.js cloudant app to bluemix


更新:從這個問題看到評論

我想我已經轉載了問題:

2017-01-01T23:12:14.45+0000 [App/0]  ERR Error: Cannot find module 'webpack' 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Function.Module._resolveFilename (module.js:339:15) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Function.Module._load (module.js:290:25) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Module.require (module.js:367:17) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at require (internal/module.js:16:19) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Object.defineProperty.value (/home/vcap/app/dist/server.bundle.js:280:19) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Object.<anonymous> (/home/vcap/app/dist/server.bundle.js:1930:17) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Object.defineProperty.value (/home/vcap/app/dist/server.bundle.js:2074:31) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at __webpack_require__ (/home/vcap/app/dist/server.bundle.js:20:30) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at /home/vcap/app/dist/server.bundle.js:40:18 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Object.<anonymous> (/home/vcap/app/dist/server.bundle.js:43:10) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Module._compile (module.js:413:34) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Object.Module._extensions..js (module.js:422:10) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Module.load (module.js:357:32) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Function.Module._load (module.js:314:12) 
2017-01-01T23:12:14.45+0000 [App/0]  ERR  at Module.require (module.js:367:17) 

webpack導入問題似乎與文件dist/server.bundle.js對於我是由npm run bs命令生成的。

dist文件夾正在上傳到Bluemix,並且在您的應用程序啓動時顯示爲正在導入。

您可以排除.cfignore中的dist文件夾,並在您的應用上傳cf push時構建它嗎?我不確定是否在manifest.yml中添加了多個命令,例如

command: npm <<your_new_build_command>> && npm run start:prod 

但是,它看起來好像無論你在新的build命令做(例如npm run bs:prod),只有當它創建你的DIST文件夾拿起生產的依賴。

如果您無法從manifest.yml運行多個命令,那麼您可能需要更改start:prod,以便它還執行生產環境的構建步驟。

更新2

你可以問節點buildpack不緩存模塊,並通過使用NODE_MODULES_CACHE: false,例如每次按下時將它們下載

applications: 
- name: ... 
    buildpack: nodejs_buildpack 
    memory: 512M 
    command: ... 
    env: 
    NODE_MODULES_CACHE: false 
+0

不,我已經在.cf中忽略 - > node_modules /,有沒有選項可以清除緩存而不刪除? –

+0

但我不確定,這個問題看起來可能有所幫助http://stackoverflow.com/questions/31006154/how-can-i-avoid-loading-buildpack-components-from-cache-on-bluemix –

+0

並考慮試圖下載dev dev的問題?任何想法的方向?我卡住了......謝謝! –