前端開發在package.json通過命令列設定環境變數
阿新 • • 發佈:2018-12-14
在package.json裡面設定環境變數的方法
我們一般使用cross-env來實現
記得 npm install cross-env --save-dev
{
"scripts": {
"dev": "cross-env CURRENT_ENV=development webpack-dev-server --inline --progress",
"build": "cross-env CURRENT_ENV=production node build/build.js
}
}
執行npm run dev
即可,在js檔案裡面就可以通過process.env.CURRENT_ENV
development
執行scripts裡面命令實際相當於在執行
node_modules/.bin/cross-env CURRENT_ENV=development webpack-dev-server
有點懵?
我們一般是安裝開發依賴時是執行npm install xxx --save-dev
的,這時在node_modules
檔案裡面會有個.bin
資料夾,有的檔案系統可能是隱藏資料夾,.bin
資料夾裡面的資料夾一般是可以執行檔案
上面是針對的開發環境,設定生產環境同樣適用,並且生產環境還可以使用process.env.argv
,它是一個數組,裡面存放node執行的引數。
上面的package.json裡面有npm run build
node build/build.js
後面加上引數,比如
{
"build": "cross-env CURRENT_ENV=production node build/build.js testArg"
}
這個引數testArg就會在process.env.argv
裡面了,需要注意的是,這個process.env.argv
並不是只有兩個引數build/build.js
和testArg
,該數組裡面第一個是當前node的目錄,比如/Users/shadow/.nvm/versions/node/v8.11.4/bin/node
,所以testArg的index是數組裡面的第三個。使用時最好把process.env.argv