繁体   English   中英

在OpenShift上运行npm install --production

[英]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。

  1. 创建.npmrc文件夹所在的node_modules文件。

  2. text-editor打开它并将其添加到它:

    production = true

PS没有分号或任何其他字符

这将确保devDependencies都没有安装OPENSHIFT服务器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM