1. 程式人生 > >前端開發在package.json通過命令列設定環境變數

前端開發在package.json通過命令列設定環境變數

在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.jstestArg,該數組裡面第一個是當前node的目錄,比如/Users/shadow/.nvm/versions/node/v8.11.4/bin/node,所以testArg的index是數組裡面的第三個。使用時最好把process.env.argv

列印下,確定好自己設定的引數的位置再使用。