vue针对正式和测试环境打不同的包

一开始我是直接在pro.env.js里面配置了两个地址,每次打包时注释掉不要的就好了,但打包频繁了,越发觉得很不方便,然后就有了后面的方法。

一、模仿npm run build,新建一个新的命令:npm run sit

通过新建命令:npm run sit 来打包测试环境包,npm run build专门来打包正式包就可以了

1、复制一份config/文件夹下的pro.env.js,改名sit.env.js,修改下域名为测试域名

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  API_ROOT:'"自己的测试域名"' //测试地址
}

2、复制build文件夹下的build.js和webpack.prod.conf.js文件,重新命名build.sit.js和webpack.sit.conf.js,然后修改下文件路径

vue针对正式和测试环境打不同的包_第1张图片

vue针对正式和测试环境打不同的包_第2张图片

3、修改package.json文件,在script属性下添加sit脚本命令

这样就可以直接通过npm run sit来打包测试环境的包了,然后npm run build来打包正式环境的地址

二、分区npm run build 后面的参数来打不同环境的包

1、process.argv.splice()可以用来获取终端输入命令参数,在build.js文件打印process.argv.splice(2),然后终端输入命令:npm run build sit,可以看到打印的参数:

vue针对正式和测试环境打不同的包_第3张图片

vue针对正式和测试环境打不同的包_第4张图片

2、修改pro.env.js文件

'use strict'
module.exports = {
  NODE_ENV: '"production"',
  API_ROOT: process.argv.splice(2)[0] == 'sit'?'"测试地址"':'"正式地址"' //测试地址打包执行:npm run build sit;正式地址打包:npm run build
}

这样就可以区分正式和测试地址了

你可能感兴趣的:(vue)