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