用於express.js環境。有什麼建議麼?如何在OS X中將NODE_ENV設置爲生產/開發
回答
運行你的應用程序之前,可以在控制檯做到這一點,
export NODE_ENV=production
或者,如果你在Windows下你可以試試這個:
SET NODE_ENV=production
,或者你可以像這樣運行你的應用程序:
NODE_ENV=production node app.js
您還可以設置它在你的js文件:
process.env.NODE_ENV = 'production';
但我不建議在運行時文件中這樣做,因爲在服務器中打開VIM並將其更改爲生產並不容易。您可以在目錄中創建config.json文件,並且每次運行應用程序時,都會從中讀取並設置配置。
這是一篇關於NODE_ENV的好文章:http://www.hacksparrow.com/running-express-js-in-production-mode.html。可以使用https://npmjs.org/package/grunt-env插件。
heroku config:set NODE_ENV="production"
啊這是我需要的。你真棒 – 2014-06-17 23:07:09
'NODE_ENV = production'現在是Heroku node.js部署中的默認設置。 – cyanbeam 2016-08-01 23:54:15
OP沒有要求Heroku,但無論如何,謝謝! – 2016-10-04 08:50:20
丹尼爾有一個夢幻般的答案,這是正確部署(設置和忘記)過程的更好方法。
對於那些使用快遞。 您可以使用grunt-express-server,這也非常棒。 https://www.npmjs.org/package/grunt-express-server
中的package.json:
{
...
"scripts": {
"start": "NODE_ENV=production node ./app"
}
...
}
然後在終端中運行:
npm start
不要在package.json中放入一堆腳本,這是不好的做法,因爲你引入了不一致性,並且它在你的項目中不可用。我知道很多人創建腳本來運行grunt或gulp,但是不要那麼做 – PositiveGuy 2015-07-08 03:34:06
@WeDoTDD你在說什麼?這些腳本的使用方式與makefile的工作方式類似。使用它作爲這個例子,或者你所說的運行gulp是一個完全合理的用例。對於簡單的任務,我現在甚至不使用gulp並在腳本內部完成所有工作,而且讓webpack執行過去通過gulp完成的工作要快得多。 – 2015-11-09 03:03:09
因爲最終所有項目的腳本文件不一致都是維護噩夢 – PositiveGuy 2015-11-09 14:02:36
export NODE_ENV=production
是壞的解決方案,它重啓後消失。如果你想不擔心變了
- 將其添加到該文件:
/etc/environment
不使用出口的語法,只寫(在新的生產線,如果有些內容已經存在):
NODE_ENV=production
它在重新啓動後工作。您將不必再在任何地方重新進入出口NODE_ENV =生產命令,只需使用節點任何你想要 - 永遠,PM2 ...
對於Heroku的:
heroku config:set NODE_ENV="production"
這實際上是默認的。
維護噩夢。那麼你沒有權限/ etc的方塊呢? – 2016-06-16 21:41:32
我個人使用'NODE_ENV = production gulp bundle-production-app'來捆綁生產就緒腳本,在服務器中NODE_ENV在服務器環境中,在開發機器中它不在那裏。在一些機器中,如果它沒有設置,並且你希望它設置爲* always *,那麼它是噩夢。在某些情況下,你希望沒有它,所以你不加。無論如何,當做UI時,我會清楚它是否處於開發模式,所以如果它處於開啓或關閉狀態,您都不會有任何疑問。如果NODE_ENV是!==生產,它在你的臉上,你在其他模式,所以根本沒有噩夢。所有清楚,都很好。 – 2016-07-12 10:08:10
+1因爲談論如何使它堅持下去。我想知道有多少人只在本屆會議上認爲它會持續下去。在*重新啓動之前*怎麼樣?如果你想立即設置它,你應該把它放在'/ etc/environment' *並且*運行'export NODE_ENV = production'? – Nateowami 2017-01-23 16:03:05
如果你在窗戶上。在正確的文件夾打開CMD,然後第一
set node_env={your env name here}
敲回車,然後你可以用
node app.js
啓動節點,它將與您的env設置
重啓後不會消失嗎?沒有窗戶,不能嘗試自己。 – 2016-03-05 06:26:17
如果您詢問節點重新啓動否,它將不會消失,直到完全關閉命令提示符。但是,如果Windows Server重新啓動,它會消失。談論操作系統重啓時的 – garenyondem 2016-03-05 11:14:39
。這就是爲什麼我更好地找到另一種方法來停止想知道每次安裝Windows更新,或只是任何重新啓動,一次又一次地解決這個問題。 – 2016-03-06 12:17:53
在沒有人提到.env
現在還沒有開始呢?在您的應用程序根目錄中創建一個.env
文件,然後require('dotenv').config()
並讀取值。輕鬆更換,輕鬆閱讀,跨平臺。
在OSX我建議增加export NODE_ENV=development
您~/.bash_profile
和/或~/.bashrc
和/或~/.profile
。
我個人將該條目添加到我的~/.bashrc
,然後導入該文件的內容,因此它在各個環境中保持一致。
完成這些添加後,請務必重新啓動終端以獲取設置。
適用於Windows PowerShell如果您在應用程序中使用的WebPack使用此命令
$env:NODE_ENV="production" ; node app.js
,你可以簡單地將其設置在那裏,用DefinePlugin
...
plugin
部分
所以,設置在NODE_ENV到production
:
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"',
})
]
無需擔心在Windows,Mac或Linux上運行腳本是否安裝了cross-env軟件包。然後你可以很容易地使用你的腳本,例如:
"scripts": {
"start-dev": "cross-env NODE_ENV=development nodemon --exec babel-node -- src/index.js",
"start-prod": "cross-env NODE_ENV=production nodemon --exec babel-node -- src/index.js"
}
海量道具給這個包的開發者。
- 1. 將iisnode中的Node.js環境變量(NODE_ENV)設置爲生產/開發/測試
- 2. 如何將NODE_ENV永久設置爲ansible?
- 3. 如何設置開發/生產
- 4. 如何設置NODE_ENV?
- 5. LLVM鏘產生在OS X
- 6. nodejs,NODE_ENV =生產和出口NODE_ENV =生產有什麼區別?
- 7. 如何在OS X 10.6.8中設置Ruby?
- 8. npm:如何在Windows(10)中設置NODE_ENV?
- 9. 在OS X中設置pythonpath
- 10. 在Tomcat上將Lucee設置爲Mac OS X上的開發環境
- 11. 設置git進行開發和生產
- 12. Git開發到生產設置
- 13. NODE_ENV生產替代名稱
- 14. 如何爲開發和生產設置不同的ActionMailer基本smtp設置?
- 15. 生產和開發CakeEmail設置
- 16. devise with omniauth - 爲開發和生產設置單獨的配置
- 17. 如何在Mac OS X上設置libusb?
- 18. 如何在OS X/Terminal中爲root設置文件權限?
- 19. 如何在mac os中爲matplotlib設置ffmpeg x
- 20. 如何將stacksize設置爲無限制的OS X 10.8?
- 21. 如何設置Plone產品的開發
- 22. 將生產數據庫設置複製到開發數據庫
- 23. 如何爲nodejs中的生產和開發設置不同的環境?
- 24. Web開發生產/測試/開發環境設置
- 25. Git開發→生產工作流程 - 如何設置回購?
- 26. Xcode 5爲OS X開發10.6
- 27. OS X AudioUnit:kAudio_ParamError設置發生器上的雜項屬性
- 28. 設置新的Web開發人員環境OS X或Unix?
- 29. 在Mac OS X下開發時如何在IE中測試?
- 30. 如何在生產和開發中管理不同的php.ini設置?
輝煌,謝謝! – 2012-02-17 16:10:58
這是個不好的建議。從應用程序本身可靠地設置'process.env.NODE_ENV'會很棘手。最好按照丹尼爾的鏈接在下面設置你的環境變量。 – 2013-09-09 19:55:15
我很喜歡每次運行應用程序都顯式設置NODE_ENV,如第二個例子('NODE_ENV = production node app.js')。這樣,如果忘記將本地'NODE_ENV'設置回'development',那麼您可能會將自己從未來的某些髮型中拯救出來。 – Jon 2014-02-15 19:52:21