[英]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.