[譯]關於NODE_ENV,哪些你應該瞭解

maser_yoda發表於2019-02-16

原文

Node.js開發者經常檢測環境變數NODE_ENV,但你是否知道設定這個值同時也具有著某些別的意義?閱讀本文你將發現這些。

NODE_ENV是一個在Express框架中極其常用的環境變數。用其確定應用的執行環境(諸如開發,staging,生產,測試…)。

通常,應用將會執行在開發環境。我們可以通過改變process.env.NODE_ENV來改變環境。讓我們來看看框架/庫在不同環境下的表現。

開發環境

  • 顯示更多日誌

  • 不快取檢視

  • 生成較冗餘的錯誤資訊

  • js,css這類前端資源,不壓縮不快取

生產環境

以下是與框架無關的一些特點:

  • 中介軟體及其他依賴會被切換到更高效的程式碼路徑

  • 只安裝dependencies中的包,dependenciespeerDependencies的中包會被忽略

express.js

  • 快取檢視框架

  • 生成更簡短的錯誤資訊

  • 快取資原始檔

sailsjs

  • 可以使用CSRF

  • 壓縮服務端響應(詳見https://www.npmjs.com/package…

  • 模組遷移的設定被強制定位`safe`。這可以保證在部署時不會破壞生產資料。

  • res.serverError()追蹤錯誤資訊與錯誤棧會被存在日誌中而不是通過服務端響應返回。

mongoose

全域性禁用autoIndex。這能顯著提高效能(詳見http://docs.mongodb.org/manua…)。

還有許多這裡就不一一列出。如你所見,將NODE_ENV設為production能達到更好的效能。所以這個變數在全球Node開發者心中有如此重要的地位。你應該牢記“總是將NODE_ENV設為production”。

相關文章