在CF/Bluemix上部署nodejs问题



当我尝试将以下回购部署到cf/bluemix时,我会因" devDepentencies"而出现错误:

Error: Cannot find module 'webpack' 

如果我将webpack添加到dep,我有错误

Error: Cannot find module 'postcss-cssnext'

并继续前往其他开发人员..

devDepentencies 的哪一部分,部署不应仅安装" prod"依赖关系?

这是回购:https://github.com/hashnode/mern-starter

我用npm run bs在本地运行构建,然后放入清单中。

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

是什么原因是在DevDections上拖延?

您是否正在使用项目中的Node_modules文件夹来蓝色?如果是,请尝试完全删除它并重新进行。

另外,

只需在.cfignore文件中添加line node_modules即可忽略node_modules目录。BuildPack将在云铸造容器中运行节点安装。另外,我建议您执行CF删除以将其从缓存中删除,然后再次进行CF

source :请参阅此问题的注释:无法将Node.js Cloudant App推入Bluemix


update

我认为我已经复制了问题:

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上传时将其构建吗?我不确定您是否在清单中添加多个命令。

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

但是,看起来您在新构建命令中所做的任何事情(例如npm run bs:prod)仅在创建DIST文件夹时就可以拾取生产依赖项。

如果您无法从subtest.ym运行多个命令,则可能需要更改start:prod,以便为生产环境执行构建步骤。

更新2

您可以要求节点buildpack不要缓存模块,并每次使用NODE_MODULES_CACHE: false推动时下载它们,例如

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

最新更新