首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CF/BlueMix上部署nodejs问题

在CF/BlueMix上部署nodejs问题
EN

Stack Overflow用户
提问于 2017-01-01 21:41:56
回答 1查看 836关注 0票数 1

当我试图将以下回购部署到CF/BlueMix时,我得到了“devDependencies”的错误:

代码语言:javascript
复制
Error: Cannot find module 'webpack' 

如果我把webpack加到部门,我就会出错。

代码语言:javascript
复制
Error: Cannot find module 'postcss-cssnext'

并继续为其他开发部门..。

部署不应该只安装"prod“依赖项吗?devDependencies的哪一部分?

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

我使用npm run bs在本地运行构建,并在manifest.yml中输入以下内容

代码语言:javascript
复制
---
applications:
- name: myapp
  buildpack: nodejs_buildpack
  memory: 512M
  command: npm run start:prod
  services:
    - mong

开发依赖的原因是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-01-01 22:08:54

您是否正在使用项目中的node_modules文件夹推送到Bluemix?如果是的话,试着完全删除它并重新启动它。

另外,

只需将行node_modules添加到.cfignore文件中,就可以忽略node_modules目录。buildpack将在云铸造容器中运行节点安装。另外,我建议您执行cf删除以从缓存中删除它,然后再执行cf推送。

来源:参见本问题的评论:unable to push node.js cloudant app to bluemix

更新

我想我重复了这个问题:

代码语言:javascript
复制
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中添加了多个命令。

代码语言:javascript
复制
command: npm <<your_new_build_command>> && npm run start:prod

但是,看起来无论在新构建命令(例如npm run bs:prod)中做什么,只在创建dist文件夹时才会获取生产依赖项。

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

更新2

您可以要求节点构建包不要缓存模块,并在每次使用NODE_MODULES_CACHE: false进行推送时下载它们。

代码语言:javascript
复制
applications:
- name: ...
  buildpack: nodejs_buildpack
  memory: 512M
  command: ...
  env:
     NODE_MODULES_CACHE: false
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41419281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档