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.env
和cross-env
還可以設定其他環境變數,比如說:埠PROT
和VUE_ENV
區分客戶端、服務端。
參考
node實戰第二版