簡體   English   中英

在CF / BlueMix上部署nodejs問題

[英]Deploy nodejs issue on CF/BlueMix

當我嘗試將以下repo部署到CF / BlueMix時,我得到了“devDependencies”的錯誤:

Error: Cannot find module 'webpack' 

如果我添加webpack到dep我得到錯誤

Error: Cannot find module 'postcss-cssnext'

並繼續為其他開發者...

devDependencies的哪一部分,部署不應只安裝“prod”依賴項?

這是回購: 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

什么可能是導致失去依賴性的原因?

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

也,

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

來源 :請參閱此問題的評論: 無法將node.js cloudant app推送到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

但是,看起來你在新的構建命令中所做的事情(例如npm run bs:prod )只會在創建dist文件夾時選擇生產依賴項。

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

更新2

您可以要求節點buildpack不緩存模塊並在每次推送時使用NODE_MODULES_CACHE: false下載它們NODE_MODULES_CACHE: false ,例如

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM