- npm run dev_uat 通过package.json找到 build/dev-server-uat.js
- dev-server-uat.js 第一步通过require(../config/index.js) 加载配置文件,得到config对象。
第二步赋值process.env.NODE_ENV = config.dev.uat.NODE_ENV;跟随config对象去找dev属性的配置。
第三部通过var webpackConfig = require(‘./webpack.dev.uat.conf’)找到对应的webpackConfig。
2.1. /config/index.js 第一步 require(../package.json)引入dependencies
2.2 第二步module.exports输出build、uat、dev三个不同属性的配置文件,分别对应不用的配置。
{build: {uat: require('./build_uat') //加载build_uat.js //NODE_ENV: 'build_uat'pro: require('./build_pro') //加载build_pro.js //NODE_ENV:'build_pro'}dev:{uat: require(./dev_uat)//加载dev_uat.js //NODE_ENV:'dev_uat'pro: require(./dev_pro) //加载dev_pro.js //NODE_ENV:'dev_pro'}}
2.1.1 /config/dev_uat.js 通过exports {NODE_ENV: ‘dev_uat’}; //dev_uat
2.3 ./webpack.dev.uat.conf文件中通过:
var baseWebpackConfig = require('./webpack.base.conf') //基础webpack配置文件merge(baseWebpackConfig,{...new webpack.DefinePlugin({'pro.env': conf.dev.uat //dev_uat的webpack环境,// ’pro.env': conf.dev.pro //dev_pro的webpack环境})...})
- npm run build_uat
- 通过package.json找到 build/build_uat.js
/build_uat.js通过:
var config = require('./webpack.build.uat.conf')...new webpack.DefinePlugin({'process.env' : config.build.uat //build_uat的webpack环境,NODE_ENV:'build_uat'// 'process.env' : config.build.pro //build_pro的webpack环境,NODE_ENV:'build_pro'})...
通过require(../config)找到./config/index.js得到config对象
然后配置webpack的assetsRoot和assetsSubDirectory等属性。
以上配置只是改变process.env.NODE_ENV的值,所以在api.js或者mock.js里根据这一点分别
设置不同的接口地址,就可以实现打包或运行不同的环境。
