vue-cli 3.x 配置多环境

思路:新建一个 process.env 变量。

把 webpack 配置放到 vue.config.js 里面。

如果根目录下没有该文件,新建。配置参考:https://cli.vuejs.org/zh/config/

vue.config.js 配置参考:

const webpack = require('webpack')
const merge = require('webpack-merge')
const env = process.env

module.exports = {
  publicPath: './',
  outputDir: 'dist',
  assetsDir: 'static',
  productionSourceMap: false,
  configureWebpack: {
    output: {
      filename: '[hash].js'
    },
    plugins: [
      new webpack.DefinePlugin({
        'process.env': merge(env, {
          'AJAX_URL': '"' + process.env.AJAX_URL + '"'  // 新建 AJAX_URL 变量
        })
      })
    ]
  }
}

安装工具

npm install --save-dev cross-env

 

npm 命令加上 AJAX_URL 的赋值操作,

dev:开发环境

testing:灰度发布环境

production:生产环境

"scripts": {
    "dev:dev": "cross-env AJAX_URL=dev npm run dev", 
"dev:test": "cross-env AJAX_URL=testing npm run dev",
"dev:pro": "cross-env AJAX_URL=production npm run dev",
"dev": "vue-cli-service serve",
"build:dev": "cross-env AJAX_URL=dev npm run build",
"build:test": "cross-env AJAX_URL=testing npm run build",
"build:pro": "cross-env AJAX_URL=production npm run build",
"build": "vue-cli-service build"
}

这样,就可以在业务代码里面使用 process.env.AJAX_URL 这个变量了。

可以把ajax请求的配置放到一个文件里面

let SITE_CONFIG

if (process.env.AJAX_URL === 'production') {
  SITE_CONFIG = {                         // 生产环境
    baseUrl: '//www.example.com/',        // api接口请求地址
    cdnUrl: '//www.cdn.com/'              // cdn地址
  }
} else if (process.env.AJAX_URL === 'testing') {
  SITE_CONFIG = {                         // 灰度发布环境
    baseUrl: '//test.example.com/',       // api接口请求地址
    cdnUrl: '//test.cdn.com/'             // cdn地址
  }
} else if (process.env.AJAX_URL === 'dev') {
  SITE_CONFIG = {                         // 开发环境
    baseUrl: '//dev.example.com/',        // api接口请求地址
    cdnUrl: '//dev.cdn.com/'              // cdn地址
  }
} else {                                   
  SITE_CONFIG = {                         // 本地环境
    baseUrl: '/',                         // api接口请求地址
    cdnUrl: '/'                           // cdn地址
  }
}

export default SITE_CONFIG

 

以上。

只需运行对应命令就可以实现平台切换了。

 

 

 

 

 

 

 

posted on 2019-03-15 16:28  孤云独去闲  阅读(385)  评论(0编辑  收藏  举报

导航