[英]Run npm install --production on OpenShift
当我将代码推送到OpenShift时,看起来它正在安装我的devDependencies
,这需要永远 。 我真的很想设置它,所以它只会安装dependencies
(通过运行--production
标志)。 有没有办法做到这一点?
您可以通过将NPM_CONFIG_PRODUCTION
环境变量设置为“ true
”来告诉npm使用--production
标志进行安装。
这是一个适用于现有应用程序的示例:
rhc env set NPM_CONFIG_PRODUCTION="true"
或者,您可以将此变量设置为初始应用创建步骤的一部分:
rhc app create myapplication nodejs-0.10 NPM_CONFIG_PRODUCTION="true"
找到了一种在源代码中指定它的方法,而不是在应用创建期间。 对于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。)
看起来唯一的解决方案是更新墨盒本身。 npm install命令位于盒式磁带的bin / control文件夹中。 同时,它已在wshearn / openshift-origin-cartridge-nodejs的原始github仓库中修复,因此您只需从github安装而不是使用Quickstart。
创建.npmrc
文件夹所在的node_modules
文件。
用text-editor
打开它并将其添加到它:
production = true
PS没有分号或任何其他字符
这将确保devDependencies
都没有安装OPENSHIFT
服务器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.