乐趣区

vue-cli2x配置多环境打包

首先说下自己遇到的坑,搞了半天。
开始使用过的 node 版本是 6.3.0,配置完毕运行打包命令一直报错,后来,删除了 node_modules node 使用 8.9.0 版本, 运行 npm i 才可以。

一、config/ 目录中复制 prod.env.js 修改为 test.env.js

'use strict'
 module.exports = {
   NODE_ENV: '"testing"',
   ENV_CONFIG: '"test"'
 }

二、prod.env.js 修改

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  ENV_CONFIG: '"prod"'
}

三、dev.env.js

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  ENV_CONFIG: '"dev"'
})

四、config/index.js 文件修改, build 中添加 prodEnv, testEnv, devEnv

...
  build: {prodEnv: require('./prod.env'),
    testEnv: require('./test.env'),
    devEnv: require('./dev.env'),
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),
...

五、build/webpack.prod.conf.js 文件修改,修改 env

// const env = process.env.NODE_ENV === 'testing'
//   ? require('../config/test.env')
//   : require('../config/prod.env')
const env = config.build[process.env.ENV_CONFIG+'Env']
console.log(env, process.env.ENV_CONFIG, '环境变量')

六、修改 build/build.js 文件,打包的时候可以显示环境

const spinner = ora('正在打包...' + process.env.ENV_CONFIG + '环境')

七、配置 package.json 文件,配置打包命令

"build": "node build/build.js",
"build--dev": "cross-env NODE_ENV=dev ENV_CONFIG=dev node build/build.js",
"build--test": "cross-env NODE_ENV=testing ENV_CONFIG=test node build/build.js",
"build--prod": "cross-env NODE_ENV=production ENV_CONFIG=prod node build/build.js"

八、运行命令就可以实现分环境打包了

npm run build--dev
npm run build--test
npm run build--prod

最后,项目中使用 axio 根据不同环境配置不同的请求接口地址,就可以实现打包不同环境,调用不同环境地址接口。

退出移动版