vue4.x多环境打包不压缩问题解决

2020-09-23  本文已影响0人  小拇指的约定021

本人小白,这里不懂原理只说问题和方法。

webpack默认的打包是production模式,并且只内置了production,development,2种模式,默认production打包会执行压缩;

网上很多多环境打包是直接配置 NODE_ENV = “xxx”,这样执行打包虽然会成功,但是没有压缩,不是我们想要的效果,说通俗些我们想要的效果就是打包出来的文件和直接build出来是一样的,只是配置的环境地址不同。


第一步:

在根目录建3个文件,和vue.config.js同级:

.env.development

NODE_ENV = 'development'

VUE_APP_BASE_URL  = "/"


.env.lzw

NODE_ENV = 'production'  //这里是标注模式,webpack只内置了production,development,2种模式,如果写其他的,能正常打包出来,但打包结果不会压缩,如果不想这样写,也可以自己去其他地方配置。甚至可以不写,不写就是默认的。

VUE_APP_TITLE = 'lzw' //VUE_APP_是规定的命名格式,TITLE是自己命名的变量,现在没有用到,可以在项目中用户环境判断使用,可根据需要自行增加其他参数

VUE_APP_BASE_URL  = "http://lzwapi"

outputDir = dist-lzw


.env.production

NODE_ENV = 'production'

VUE_APP_TITLE = 'production'

VUE_APP_BASE_URL  = "http://prod/api/"

outputDir = dist-prod

第二步:

在package.json中配置

"scripts": {

"serve": "vue-cli-service serve",

  "build": "vue-cli-service build",

  "build-all": "vue-cli-service build && vue-cli-service build --mode lzw",

  "build-lzw": "vue-cli-service build --mode lzw",

//关键代码,build 打包会默认解析.env.production

//这里--mode lzw把环境切换成lzw环境,然后打包会解析.env.lzw中的配置

  "lint": "vue-cli-service lint"

},


第三步:

可省略,配置输出文件夹

module.exports = {

    outputDir: process.env.outputDir,

}


第四步:

可省略,配置不同环境中设置的地址路径:

let baseURL = process.env.VUE_APP_BASE_URL;

其他地方也可直接是使用,配置的参数信息

结束,现在就可以执行命令实现多环境 打包了

上一篇下一篇

猜你喜欢

热点阅读