第一步: 安裝cross-env
npm install --save-dev cross-env
運行跨平台設置和使用環境變量的腳本
第二步:修改package.json
在package.json
里設置打包命令 --- 主要是基於使用vue-cli創建的項目,配置文件基於 NODE_ENV=production 去處理,根據盡少的改動原有配置文件的原則,我們在這里,NODE_ENV最好都設成production,
增加一個 EVN_CONFIG 字段去區分環境
NODE_ENV=production EVN_CONFIG=dev 對應着
process.env.EVN_CONFIG(指的就是package.json 的EVN_CONFIG) 與config/index.js 的build 環境值 有對應關系
對package.json文件中的scripts內容進行個性,添加上新定義的幾種環境的打包過程,里的參數與前面的調協保持一致。
"build:dev": "cross-env NODE_ENV=production EVN_CONFIG=dev node build/build.js",
"build:test": "cross-env NODE_ENV=production EVN_CONFIG=testing node build/build.js",
"build:prod": "cross-env NODE_ENV=production EVN_CONFIG=production node build/build.js"
第三步:修改config/index.js
修改config/index.js文件中build參數,這里的參數會在build/webpackage.prod.conf.js中使用到
第四步 修改build/webpackage.prod.conf.js

env ------ process.env.EVN_CONFIG 與config/index.js 的build 環境值 有對應關系
true testing
console.log(env) ---- { NODE_ENV: '"production"', EVN_CONFIG: '"testing"' }
初衷是為了 -- 區分測試環境與線上環境的打包引用路徑

index: 模板 assetRoot: 打包后文件要存放的路徑 assetsSubDirectory: 除了 index.html 之外的靜態資源要存放的路徑, assetsPublicPath: 代表打包后,index.html里面引用資源的的相對地址
build: {
// 添加test dev prod 三處環境的配制
production: require('./prod.env'),
dev: require('./dev.env'),
testing: require('./test.env'),
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
// assetsRoot: process.env.EVN_CONFIG === 'testing'?'../dist':'../h5',
// assetsSubDirectory: './static',
// assetsPublicPath: '/h5/',
assetsSubDirectory:process.env.EVN_CONFIG === 'testing' ? './static':'static',
assetsPublicPath:process.env.EVN_CONFIG === 'testing' ? '/h5/':'/',
