簡體   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