在OpenShift上运行npm install –production
当我将代码推送到OpenShift时,它看起来像安装我永远需要的devDependencies
。 我真的很喜欢设置它,所以它只会安装dependencies
(通过运行--production
标志)。 有没有办法做到这一点?
您可以通过将NPM_CONFIG_PRODUCTION
环境variables设置为“ true
”来使用--production
标志来告诉npm安装。
下面是一个适用于现有应用程序的例子:
rhc env set NPM_CONFIG_PRODUCTION="true"
或者,您可以将此variables设置为您的初始应用程序创build步骤的一部分:
rhc app create myapplication nodejs-0.10 NPM_CONFIG_PRODUCTION="true"
find一种方法来指定它在源代码而不是在创build应用程序。 对env var的好处是,它适用于所有启动应用程序的方式,包括“在OpenShift上启动”button。
创build一个.openshift/action_hooks/pre_build
文件:
#!/bin/bash # This makes npm not install devDependencies. echo 'Enabling npm production' echo 'production = true' >> $OPENSHIFT_REPO_DIR/.npmrc
而已! 我已经testing过,它确实会影响这个版本的npm,如果将来删除这个钩子,那么.npmrc会消失。
(显然,我也可以通过简单地将.npmrc
添加到我的repo中来实现,但不想影响检查源代码和运行npm install
,而只是在OpenShift上如何工作。)
看起来唯一的解决办法是更新墨盒本身。 npm install命令位于盒式磁带的bin / control文件夹中。 同时,它已经在wshearn / openshift-origin-cartridge-nodejs的原始github仓库中修复,所以你可以从github安装而不是使用Quickstart。
-
在
.npmrc
文件夹所在的node_modules
创build一个.npmrc
文件。 -
用你的
text-editor
打开它,并添加到它:production = true
PS没有分号或任何其他字符
这将确保devDependencies
不安装在OPENSHIFT
服务器上