當我將代碼推送到OpenShift時,看起來它正在安裝我的devDependencies
,它永遠需要。我真的很喜歡設置它,所以它只會安裝dependencies
(通過使用--production
標誌運行)。有沒有辦法做到這一點?在OpenShift上運行npm install --production
回答
通過將NPM_CONFIG_PRODUCTION
環境變量設置爲「true
」,可以使用--production
標誌告訴npm安裝。
這裏是應該對現有應用程序的示例:
rhc env set NPM_CONFIG_PRODUCTION="true"
或者,你可以把這個變量作爲您最初的應用程序創建步驟的一部分:
rhc app create myapplication nodejs-0.10 NPM_CONFIG_PRODUCTION="true"
看起來唯一的解決方案是更新墨盒本身。 npm install命令位於盒式磁帶的bin/control文件夾中。同時,它已在originating github repo at wshearn/openshift-origin-cartridge-nodejs中修復,因此您只需從github安裝而不是使用快速入門。
謝謝你的提示安裝約翰。我在github回購中看到那個命令發生的地方。不幸的是,我使用快速入門安裝,沒有bin /控制文件。你不知道我可以在快速入門中做出改變嗎? – kentcdodds
我不確定這是官方回購。看來目前在RHcloud.com上使用的代碼是https://github.com/openshift/origin-server/tree/master/cartridges/openshift-origin-cartridge-nodejs;它確實[嘗試設置NODE_ENV =生產](https://github.com/openshift/origin-server/commit/97124748e41d01ace67df931908755f84ecfdbae),但我仍然看到devDependencies安裝。 –
找到了一種方法在源代碼中而不是在創建應用程序時指定它。 對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。)
創建一個
.npmrc
文件,其中node_modules
文件夾位於。與
text-editor
打開它,將它添加到它:production = true
附:沒有分號或其他字符
這將確保devDependencies
不會在OPENSHIFT
服務器
- 1. Ghost CMS - sudo npm install --production - 錯誤
- 2. 如何在github上運行npm install
- 3. 運行npm install時出錯
- 4. 不要運行'npm install && bower install'
- 5. cakephp htaccess for production install
- 6. 在極低規格的機器上運行`npm install`
- 7. npm install vs sudo npm install -g
- 8. 在OpenShift上更新NPM
- 9. Docker在同一個容器上運行「pip install」和「npm install」互相覆蓋
- 10. 運行「npm install」後出現錯誤
- 11. 不能運行`npm install -g angular/cli`
- 12. meteor npm install --save babel運行時錯誤
- 13. 如何在complie上運行「npm install」之類的bash命令
- 14. 在kudu上運行npm install gulp時出錯
- 15. 'npm EER!代碼1'當使用`npm install --production`安裝依賴項時
- 16. 在mac上運行'bower install'
- 17. npm掛在npm install -g appium
- 18. django cron在openshift上運行
- 19. 在Openshift上運行debug node_module
- 20. 在運行npm install時多次調用回調
- 21. 無法運行npm命令「npm install -g tty.js」。
- 22. npm install上的EEXIST錯誤
- 23. 運行在OpenShift
- 24. 執行npm install時出錯
- 25. 執行「npm install」時出錯
- 26. BlueMix上的Angular2無法在公用文件夾上運行npm install
- 27. 爲什麼在運行npm install --no-bin-links時存在錯誤?
- 28. MEAN npm install
- 29. npm install jpm --global
- 30. npm install peerDependencies
這是新的嗎?我從未在任何地方看到過...... – kentcdodds
它在Openshift文檔中有說明:https://developers.openshift.com/en/node-j.s-environment-variables.html。 此外,它的工作! –
使用命令的選項形式,它是'rhc app create -a myapplication -t nodejs-0.10 --env NPM_CONFIG_PRODUCTION =「true」'。 –