Node如何方便切換環(huán)境——環(huán)境變量(NODE_ENV)設(shè)置

Node如何方便切換環(huán)境——環(huán)境變量(NODE_ENV)設(shè)置

在公司,一個項目一般會有開發(fā)版本、測試版本、線上版本,每個版本可能都會對應(yīng)不同的相關(guān)參數(shù),或許數(shù)據(jù)庫的連接地址不同,或許請求的API地址不同等等。為了方便管理,我們通常做成配置文件的形式,根據(jù)不同的環(huán)境,加載不同的文件。如果手動修改代碼中加載配置文件的路徑,這樣會給人一種很low的感覺,下面我們將一下看起來逼格較為方便的做法。

啟動node項目

首先,我們說一些基礎(chǔ)性的知識。一個簡單的node項目,會有一個package.json文件,用來保存項目的依賴包和一些項目描述的信息;會有一個入口主文件,用來啟動項目。這邊假設(shè)入口主文件為app.js,啟動項目的方法如下:

// 方法一
node app.js。

我們還有另外一種方式,通過package.json文件啟動項目,下面我們看一下如何操作。

1、修改package.json文件

// 在scripts中添加start項,后面的值為啟動app.js的命令
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node app.js"
},

2、通過npm命令運(yùn)行node項目

在控制臺運(yùn)行npm run start,這樣項目就可以啟動了。這里的start就是上面package.json中的start。

明明第一種方式很簡單,為什么會有第二種這么繁瑣的方式呢?存在即合理,因為第二種方式我們還可以做其他的操作。(下面開始進(jìn)入正題了)

之前我們說要設(shè)置環(huán)境變量NODE_ENV,第二種方法給我們帶來了方案。例如,我們想把NODE_ENV設(shè)置成development,我們可以修改上面的配置。

// 在scripts中添加start項,后面的值為啟動app.js的命令
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "export NODE_ENV='development' && node app.js" // 在Mac和Linux上使用export, 在windows上export要換成set
},

這樣我們在運(yùn)行npm run start的時候,就會自動設(shè)置NODE_ENV的值為development。設(shè)置了之后,我們?nèi)绾潍@取呢?別急,接下來我們就說一下如何獲取環(huán)境NODE_ENV。

通過下面的方式,我們可以在node中打印出上面設(shè)置的NODE_ENV的值了

console.log(process.env.NODE_ENV); // development

現(xiàn)在,我們可以通過配置package.json來設(shè)置環(huán)境變量,又可以在代碼中獲取到NODE_ENV的值,所以可以我們可以輕松的切換環(huán)境啦。

package.json配置

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "export NODE_ENV='development' && node app.js",
    "build": "export NODE_ENV='production' && node app.js"
}

npm run start就是開發(fā)環(huán)境

npm run build就是線上環(huán)境

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容