vue cli2.x配置多環境打包

首先說下本身遇到的坑,搞了半天。
開始使用過的node版本是6.3.0,配置完畢運行打包命令一直報錯,後來,刪除了node_modules node使用8.9.0版本,運行npm i 才能夠。

1、config/目錄中複製 prod.env.js 修改成test.env.jshtml

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

2、prod.env.js 修改node

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

3、dev.env.jswebpack

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

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

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

5、build/webpack.prod.conf.js文件修改,修改envnpm

// 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, '環境變量')

6、修改build/build.js文件,打包的時候能夠顯示環境json

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

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

"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"

8、運行命令就能夠實現分環境打包了code

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

最後,項目中使用axio根據不一樣環境配置不一樣的請求接口地址,就能夠實現打包不一樣環境,調用不一樣環境地址接口。htm

相關文章
相關標籤/搜索