設定 NODE ENVproduction
生產部署在很多方面都有所不同,但在生產中部署時的標準約定是定義一個名為 NODE_ENV
的環境變數,並將其值設定為 production
。
執行時標誌
在你的應用程式中執行的任何程式碼(包括外部模組)都可以檢查 NODE_ENV
的值:
if(process.env.NODE_ENV === 'production') {
// We are running in production mode
} else {
// We are running in development mode
}
依賴
當 NODE_ENV
環境變數設定為 ‘production’ 時,執行 npm install
時, package.json 檔案中的所有 devDependencies
將被完全忽略。你還可以使用 --production
標誌強制執行此操作:
npm install --production
要設定 NODE_ENV
,你可以使用任何這些方法
方法 1:為所有節點應用程式設定 NODE_ENV
Windows:
set NODE_ENV=production
Linux 或其他基於 unix 的系統:
export NODE_ENV=production
這為當前的 bash 會話設定了 NODE_ENV
,因此在此語句之後啟動的所有應用程式都將 NODE_ENV
設定為 production
。
方法 2:為當前應用設定 NODE_ENV
NODE_ENV=production node app.js
這將僅為當前應用設定 NODE_ENV
。當我們想要在不同環境中測試我們的應用時,這會有所幫助
方法 3:建立 .env
檔案並使用它
這使用了這裡解釋的想法。有關詳細說明,請參閱此帖子。
基本上你建立 .env
檔案並執行一些 bash 指令碼來在環境中設定它們。
為避免編寫 bash 指令碼,可以使用 env-cmd 包載入 .env
檔案中定義的環境變數。
env-cmd .env node app.js
方法 4:使用 cross-env
包
此包允許為每個平臺以一種方式設定環境變數。
使用 npm 安裝後,你可以將其新增到 package.json
中的部署指令碼中,如下所示:
"build:deploy": "cross-env NODE_ENV=production webpack"