Node-區分環境

SimonLiang發表於2019-05-10

Node-區分環境

程式在不同環境發生改變時,需求也會發生變化。比如開發環境有詳細的除錯日誌,開發環境只需精簡日誌。不同環境也會存在不同的配置,比如開發環境和生產環境資料庫並不一致。所以,專案是很需要區分不同的環境。

通過環境變數來區分環境

1.安裝cross-env

npm i --save cross-env
複製程式碼

2.定義npm執行指令碼

package.json

"scripts": {
    "start:dev": "cross-env NODE_ENV=development node index",
    "start": "cross-env NODE_ENV=production node index"
},

複製程式碼

3.通過process.env獲取環境變數

獲取環境變數,區分生產環境:

if (process.env.NODE_ENV === 'production') {
    console.log('生產環境');
}

if (process.env.NODE_ENV === 'development') {
    console.log('開發環境');
}
複製程式碼

4.在不同環境下執行對應的npm指令碼

start:dev對應開發環境,start對應生產環境

NODE_ENV是環境變數名稱,出自於express框架,其他框架也照搬了這一套,算是約定俗成。一般有development、 stage、 test 和 production

cross-env是為了統一不同系統設定環境變數的方式

設定環境變數
Windows:
$ set NODE_ENV=production
$ node app
UNIX下:
$ NODE_ENV=production node app
複製程式碼

延伸

通過process.envcross-env還可以設定其他環境變數,比如說:埠PROTVUE_ENV區分客戶端、服務端。

參考

api process

node實戰第二版

cross-env

相關文章