• npm run dev_uat 通过package.json找到 build/dev-server-uat.js
    1. 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三个不同属性的配置文件,分别对应不用的配置。

    1. {
    2. build: {
    3. uat: require('./build_uat') //加载build_uat.js //NODE_ENV: 'build_uat'
    4. pro: require('./build_pro') //加载build_pro.js //NODE_ENV:'build_pro'
    5. }
    6. dev:{
    7. uat: require(./dev_uat)//加载dev_uat.js //NODE_ENV:'dev_uat'
    8. pro: require(./dev_pro) //加载dev_pro.js //NODE_ENV:'dev_pro'
    9. }
    10. }

    2.1.1 /config/dev_uat.js 通过exports {NODE_ENV: ‘dev_uat’}; //dev_uat

    2.3 ./webpack.dev.uat.conf文件中通过:

    1. var baseWebpackConfig = require('./webpack.base.conf') //基础webpack配置文件
    2. merge(baseWebpackConfig,{
    3. ...
    4. new webpack.DefinePlugin({
    5. 'pro.env': conf.dev.uat //dev_uat的webpack环境,
    6. // ’pro.env': conf.dev.pro //dev_pro的webpack环境
    7. })
    8. ...
    9. })
    • npm run build_uat
    1. 通过package.json找到 build/build_uat.js

    /build_uat.js通过:

    1. var config = require('./webpack.build.uat.conf')
    2. ...
    3. new webpack.DefinePlugin({
    4. 'process.env' : config.build.uat //build_uat的webpack环境,NODE_ENV:'build_uat'
    5. // 'process.env' : config.build.pro //build_pro的webpack环境,NODE_ENV:'build_pro'
    6. })
    7. ...

    通过require(../config)找到./config/index.js得到config对象

    然后配置webpack的assetsRoot和assetsSubDirectory等属性。


    以上配置只是改变process.env.NODE_ENV的值,所以在api.js或者mock.js里根据这一点分别
    设置不同的接口地址,就可以实现打包或运行不同的环境。