当我将代码推送到OpenShift时,看起来它正在安装我的devDependencies
,它永远需要。我真的很喜欢设置它,所以它只会安装dependencies
(通过使用--production
标志运行)。有没有办法做到这一点?在OpenShift上运行npm install --production
回答
通过将NPM_CONFIG_PRODUCTION
环境变量设置为“true
”,可以使用--production
标志告诉npm安装。
这里是应该对现有应用程序的示例:
rhc env set NPM_CONFIG_PRODUCTION="true"
或者,你可以把这个变量作为您最初的应用程序创建步骤的一部分:
rhc app create myapplication nodejs-0.10 NPM_CONFIG_PRODUCTION="true"
看起来唯一的解决方案是更新墨盒本身。 npm install命令位于盒式磁带的bin/control文件夹中。同时,它已在originating github repo at wshearn/openshift-origin-cartridge-nodejs中修复,因此您只需从github安装而不是使用快速入门。
谢谢你的提示安装约翰。我在github回购中看到那个命令发生的地方。不幸的是,我使用快速入门安装,没有bin /控制文件。你不知道我可以在快速入门中做出改变吗? – kentcdodds
我不确定这是官方回购。看来目前在RHcloud.com上使用的代码是https://github.com/openshift/origin-server/tree/master/cartridges/openshift-origin-cartridge-nodejs;它确实[尝试设置NODE_ENV =生产](https://github.com/openshift/origin-server/commit/97124748e41d01ace67df931908755f84ecfdbae),但我仍然看到devDependencies安装。 –
找到了一种方法在源代码中而不是在创建应用程序时指定它。 对env var的好处是,它适用于启动应用程序的所有方式,包括“在OpenShift上启动”按钮。
创建.openshift/action_hooks/pre_build
文件:
#!/bin/bash
# This makes npm not install devDependencies.
echo 'Enabling npm production'
echo 'production = true' >> $OPENSHIFT_REPO_DIR/.npmrc
这就是它!我已经测试过,它确实会影响这个构建的npm,如果将来删除这个钩子,那么.npmrc会消失。
(很显然,我也可以通过简单地增加一个.npmrc
到我的回购实现这一点,但做不要影响人们检查出的来源和运行npm install
,它只能是如何工作的OpenShift。)
创建一个
.npmrc
文件,其中node_modules
文件夹位于。与
text-editor
打开它,将它添加到它:production = true
附:没有分号或其他字符
这将确保devDependencies
不会在OPENSHIFT
服务器
- 1. Ghost CMS - sudo npm install --production - 错误
- 2. 如何在github上运行npm install
- 3. 运行npm install时出错
- 4. 不要运行'npm install && bower install'
- 5. cakephp htaccess for production install
- 6. 在极低规格的机器上运行`npm install`
- 7. npm install vs sudo npm install -g
- 8. 在OpenShift上更新NPM
- 9. Docker在同一个容器上运行“pip install”和“npm install”互相覆盖
- 10. 运行“npm install”后出现错误
- 11. 不能运行`npm install -g angular/cli`
- 12. meteor npm install --save babel运行时错误
- 13. 如何在complie上运行“npm install”之类的bash命令
- 14. 在kudu上运行npm install gulp时出错
- 15. 'npm EER!代码1'当使用`npm install --production`安装依赖项时
- 16. 在mac上运行'bower install'
- 17. npm挂在npm install -g appium
- 18. django cron在openshift上运行
- 19. 在Openshift上运行debug node_module
- 20. 在运行npm install时多次调用回调
- 21. 无法运行npm命令“npm install -g tty.js”。
- 22. npm install上的EEXIST错误
- 23. 运行在OpenShift
- 24. 执行npm install时出错
- 25. 执行“npm install”时出错
- 26. BlueMix上的Angular2无法在公用文件夹上运行npm install
- 27. 为什么在运行npm install --no-bin-links时存在错误?
- 28. MEAN npm install
- 29. npm install jpm --global
- 30. npm install peerDependencies
这是新的吗?我从未在任何地方看到过...... – kentcdodds
它在Openshift文档中有说明:https://developers.openshift.com/en/node-j.s-environment-variables.html。 此外,它的工作! –
使用命令的选项形式,它是'rhc app create -a myapplication -t nodejs-0.10 --env NPM_CONFIG_PRODUCTION =“true”'。 –