設定 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"