Node.js 在CF/BlueMix上部署nodejs问题

Node.js 在CF/BlueMix上部署nodejs问题,node.js,ibm-cloud,cloud-foundry,pivotal-web-services,Node.js,Ibm Cloud,Cloud Foundry,Pivotal Web Services,当我尝试将以下repo部署到CF/BlueMix时,“devdependency”出现错误: 如果我将网页包添加到dep,则会出现错误 Error: Cannot find module 'postcss-cssnext' 并继续为其他开发部门 部署不应该只安装“prod”依赖项的devdependency的哪一部分 这是回购协议: 我使用npm run bs在本地运行构建,并在manifest.yml中输入以下内容 --- applications: - name: myapp buil

当我尝试将以下repo部署到CF/BlueMix时,“devdependency”出现错误:

如果我将网页包添加到dep,则会出现错误

Error: Cannot find module 'postcss-cssnext'
并继续为其他开发部门

部署不应该只安装“prod”依赖项的devdependency的哪一部分

这是回购协议:

我使用
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将在您的cloud foundry容器中运行节点安装。另外,我建议您执行cf删除以将其从缓存中删除,然后再次执行cf推送

来源:请参阅此问题的评论:


更新

我想我重现了这个问题:

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)
但是,无论您在新的build命令(例如,
npm run bs:prod
)中执行什么操作,看起来都只是在创建dist文件夹时拾取生产依赖项

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

更新2

您可以要求node buildpack不缓存模块,并在每次推送时使用
node\u modules\u cache:false下载模块,例如

applications:
- name: ...
  buildpack: nodejs_buildpack
  memory: 512M
  command: ...
  env:
     NODE_MODULES_CACHE: false
您是否正在使用项目中的node_modules文件夹推动Bluemix?如果是,请尝试将其完全删除并取消

而且

只需在.cfignore文件中添加行node_modules,即可忽略node_modules目录。buildpack将在您的cloud foundry容器中运行节点安装。另外,我建议您执行cf删除以将其从缓存中删除,然后再次执行cf推送

来源:请参阅此问题的评论:


更新

我想我重现了这个问题:

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)
但是,无论您在新的build命令(例如,
npm run bs:prod
)中执行什么操作,看起来都只是在创建dist文件夹时拾取生产依赖项

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

更新2

您可以要求node buildpack不缓存模块,并在每次推送时使用
node\u modules\u cache:false下载模块,例如

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

不,我已经把它放在了.cf ignore->node_modules/中,有清除缓存而不删除的选项吗?我不确定,但是,这个问题看起来可能会有帮助,并考虑到试图下载dev dep的问题?有什么方向的想法吗?我卡住了…谢谢!您是否尝试过设置
--production
标志或
NPM\u CONFIG\u production=true
如何设置?请举例说明?我试图在清单中也放置env:NODE\u env:production,但这没有帮助…不,我已经将其放置在.cf ignore->NODE\u modules/中,有一个选项可以清除缓存而不删除?我不确定,但是,这个问题看起来可能有帮助,并且考虑到试图下载dev dep的问题?有什么方向的想法吗?我卡住了…谢谢!您是否尝试过设置
--production
标志或
NPM\u CONFIG\u production=true
如何设置?请举例说明?我试图在清单中也放置env:NODE\u env:production,但这没有帮助。。。