package.json中scripts配置环境变量区分开发环境和生产环境

8 篇文章 0 订阅

有时候打包时要区分打生产环境的包还是开发环境的包,这样判断需要用哪个baseurl或者其他变量

 

方法1:

//windows操作系统下:
"builddev": "set NODE_ENV=dev&&vue-cli-service build",
"buildprod": "set NODE_ENV=prod&&vue-cli-service build",

//mac操作系统下:
"builddev": "export NODE_ENV=dev&&vue-cli-service build",
"buildprod": "export NODE_ENV=prod&&vue-cli-service build",

方法2:

先安装依赖: npm install --save-dev cross-env

然后配置兼容windows和mac环境的

"builddev": "cross-env NODE_ENV=dev vue-cli-service build",
"buildprod": "cross-env NODE_ENV=prod vue-cli-service build",

最后在js代码中就可以通过:process.env.NODE_ENV获取到对应的值,用于判断环境:

baseurl:process.env.NODE_ENV==='prod'?'http://prod.api.com':'http://test.api.com'

console.log(process.env);  // {BASE_URL: "",NODE_ENV: "prod"}

ps:这里用的是vue-cli配置NODE_ENV,别的项目可能是要配置WEBPACK_ENV,直接替换即可,然后console.log(process.env)查看环境

 

方法3(推荐,只适用于vue-cli):

配置vuecli的环境变量,在项目根目录新建.env.dev文件,内容为:

NODE_ENV=production
VUE_APP_ENV=dev

再新建一个.env.production,内容为:

NODE_ENV=production
VUE_APP_ENV=production

package.json中scripts内配置:

"builddev": "vue-cli-service build --mode dev",
"buildprod": "vue-cli-service build --mode production",

然后判断环境变量得到对应的baseurl值:    baseurl:process.env.VUE_APP_ENV==='production'?'http://prod.api.com':'http://test.api.com'

推荐原因:这样配置不会使打包文件体积增大,前面的方式打包后的文件都比较大,因为不是生产环境,代码不会压缩,警告和提示语也被打包进去了等等,这些都是不适合生产环境的

注意文件中NODE_ENV=production要加上,不然NODE_ENV就是默认的开发环境,值为delelopment

环境变量设置参考:官方文档

 

设置结果:

没有设置NODE_ENV=production 

设置了NODE_ENV=production

上图对比,可以看到文件体积明显减小.

 

开启gzip压缩进一步减小压缩体积可查看:https://blog.csdn.net/bamboozjy/article/details/110382737

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值