vue项目打包成不同的访问地址

1,028 阅读1分钟
1) 在build文件夹下,创建
/*
使用方法示例:
打包:
打包dev环境:npm run build -dev
打包test环境:npm run build -test
打包pro环境:npm run build -pro
本地运行:
本地运行dev环境:npm run dev -dev
本地运行test环境:npm run dev -test
无【--xxx】参数,则默认为dev环境:npm run dev
*/

/*
* 环境列表,第一个环境为默认环境
* envName: 指明现在使用的环境
* baseUrl: 这个环境下面的api 请求的域名
* */
    const ENV_LIST = [
        {
            // 灵动开发环境
            envName: 'dev',
            baseUrl: 'http://10.0.20.1:8080',
            rcsBaseURL: 'ws://127.0.0.1:8090'
        },
        {
            // 铁盟测试环境
            envName: 'test',
            baseUrl: 'http://10.0.20.2:8080',
            rcsBaseURL: 'ws://127.0.0.1:8090'
        }
    ]
//  获取命令行参数 http://nodejs.cn/api/process.html#process_process_argv
const argv = JSON.parse(process.env.npm_config_argv).original || process.argv
//  取出获取到的参数中的最后一个 解决cnpm编译时的错误问题
const HOST_ENV = argv[argv.length - 1] ? argv[argv.length - 1].replace(/[^a-z]+/ig,"") : ''
//  默认为第一个
const HOST_CONF = HOST_ENV  ? ENV_LIST.find(item => item.envName === HOST_ENV) : ENV_LIST[0]
//  挂载全局
process.env.BASE_URL = HOST_CONF.baseUrl
process.env.RCS_BASE_URL = HOST_CONF.rcsBaseURL

console.log(chalk.green('当前环境:' + HOST_ENV))
console.log(chalk.green('当前BASE_URL:' + HOST_CONF.baseUrl))
console.log(chalk.green('当前RCS_BASE_URL:' + HOST_CONF.rcsBaseURL))

module.exports.HOST_CONF = HOST_CONF
module.exports.ENV_LIST = ENV_LIST

2) 在webpack.dev.conf.js和webpack.prod.conf.js中的plugins里添加下面的代码
        new webpack.DefinePlugin({
	    'process.env': require('../config/dev.env'),
	    //添加下面代码
	    'process.env.BASE_URL': '\"' + process.env.BASE_URL + '\"',
	    'process.env.RCS_BASE_URL': '\"' + process.env.RCS_BASE_URL + '\"'
	})
	
3) 在webpack.base.conf.js中require('./env-config.js')