vue-cli-service build 不同环境的配置

2023-09-22 09:42:22

目录

🤜 背景

🤜 vue-cli-service介绍

🤜 环境变量和模式

🤜 配置不同模式

🤜index.html使用环境变量

🤜 验证

🤜 参考资料


  

🤜 背景

在项目部署时,我们需要在测试环境和生产环境使用不同的变量。vue-cli提供了vue-cli-service build打包命令,然而vue-cli-service build默认的环境变量值则为production。那我们通过npm run build打包构建,想要实现不同环境使用不同变量,暂时不能实现。

🤜 vue-cli-service介绍

官方介绍:vue-cli-service

vue-cli生成项目时,在package.json中会设置:

  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build"
}

vue-cli-service serve 命令会启动一个开发服务器,默认指定的环境模式为development

vue-cli-service build 会在 dist/ 目录产生一个可用于生产环境的包,带有 JS/CSS/HTML 的压缩,和为更好的缓存而做的自动的vendor chunk splitting

🤜 环境变量和模式

在项目的根目录下我们可以创建不同模式的文件:

.env                # 在所有的环境中被载入
.env.local          # 在所有的环境中被载入,但会被 git 忽略
.env.[mode]         # 只在指定的模式中被载入
.env.[mode].local   # 只在指定的模式中被载入,但会被 git 忽略

一般来说,我们会存在本地环境测试环境线上环境,那我们就需要创建三个模式文件。

  • .env.development开发环境模式
// 环境变量
NODE_ENV=development
// 以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中
VUE_APP_ENV = 'development'
  • .env.test测试环境模式
// 环境变量(这里的环境变量是跟打包有关的,production则会进行压缩代码等,真正跟每个环境有关的变量是下面以VUE_APP开头的变量)
NODE_ENV=production
// 以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中
VUE_APP_ENV = 'test'
  • .env.production线上环境模式
// 环境变量
NODE_ENV=production
// 以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中
VUE_APP_ENV = 'production'

🤜 配置不同模式

部署时,构建打包执行npm run build,则会执行vue-cli-service build,默认模式为production,对应.env.production文件,取此文件中的环境变量。

想要配置测试环境,需要在scripts下增加脚本:

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "build-test": "vue-cli-service build --mode test"
}

测试环境打包构建时,执行npm run build-test即可。

🤜index.html使用环境变量

index.html中可通过<%= process.env.VUE_APP_xxx %>的方式获取不同模式下配置的环境变量。

🤜 验证

可通过不同模式下对应的环境变量,判断是否为对应的环境

🤜 参考资料

Vue - 详解.env文件

更多推荐

央媒发稿不能改?媒体发布新闻稿有哪些注意点

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。“央媒发稿不能改”是媒体行业和新闻传播领域的普遍理解。央媒,即中央主要媒体,是权威性的新闻源,当这些媒体发布新闻稿或报道时,其他省、市或地方的媒体在转载时一般不对原文内容进行修改,以保证信息的一致性和权威性。其次,在我们给央媒提供新闻稿件时,需要注意以下细节,因为央

logsim&worldsim&场景库

logsimLogsim是由路测数据提取的场景,提供复杂多变的障碍物行为和交通状况,使场景充满不确定性。简单理解就是路测时录制log,通过平台回放log实现场景重现。Logsim数据来源于真实的路测,是最真实,正确有效的。但是Logsim数据的内容通常无法根据需求进行更改。举个例子,比如路测的时候,有一些需要人工接管的

【教程】微信小程序导入外部字体详细流程

前言在微信小程序中,我们在wxss文件中通过font-family这一CSS属性来设置文本的字体,并且微信小程序有自身支持的内置字体,可以通过代码提示查看微信小程序支持字体:这些字体具体是什么样式可以参考:微信小程序--字体展示_别动我的指针的博客-CSDN博客字体一font-family:‘CourierNew’,C

PgSQL-安全加固实践-如何设置非全零监听

PgSQL-安全加固实践-如何设置非全零监听1、介绍PgSQL在启动前需要配置listen_addresses配置项,该配置项表示允许PgSQL服务监听程序绑定的IP。我们知道一个host上可以有多个网卡,每个网卡可以绑定多个IP,该参数就是控制PgSQL服务绑定在哪个或者哪几个IP上。即控制服务使用哪个网络接口进行监

【笔试强训选择题】Day43.习题(错题)解析

作者简介:大家好,我是未央;博客首页:未央.303系列专栏:笔试强训选择题每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!!文章目录前言一、Day43习题(错题)解析总结前言一、Day43习题(错题)解析1.解析:B题目解析:知识点解析:synflood攻击:synflood攻击又叫syn泛洪攻击;有一

【HCIE】07.MPLS VPN单域

MPLSVPN典型应基本组网IntranetVPN1和VPN1一对,VPN2和VPN2是一对ExtranetVPN1和VPN2都能与VPN1建立连接,VPN1与VPN2之间不能建立连接Hub&SpokeMCE组网多CE组网PE是运营商设备,CE是用户侧设备,如果CE较多,那么运营商需要建很多PE和链路,投入成本较大CE

美联储如期暂停加息,非连续性加息或成常态?

KlipC报道:9月21日凌晨,美联储如期暂停加息。KlipC的合伙人AndiD表示:“”美联储在结束货币政策会议后宣布。维持当前5.25%至5.50%的联邦基金利率目标区间不变,保持在22年来最高点,这也是美联储本轮加息周期第二次按下“暂停键”。上一次是今年6月的货币政策会议。D先生指出9月议息会议联储并未继续加息,

Leetcode | 303.区域和检索-数组不可变

303.区域和检索-数组不可变欢迎关注公众号“三戒纪元”题目给定一个整数数组nums,处理以下类型的多个查询:计算索引left和right(包含left和right)之间的nums元素的和,其中left<=right实现NumArray类:NumArray(int[]nums)使用数组nums初始化对象intsumRa

C++【个人笔记1】

1.C++的初识1.1简单入门#include<iostream>usingnamespacestd;intmain(){cout<<"helloworld"<<endl;return0;}#include<iostream>;预编译指令,引入头文件iostream.usingnamespacestd;使用标准命名空间

聊聊自动化测试路上会遇到的挑战~

一、测试范围无论是功能测试,还是自动化或者性能测试,第一步要做的,是明确测试范围和需求指标。对于自动化测试来说,特别是UI自动化,并不是所有的功能点都适合做UI自动化。根据具体的业务情况和项目稳定程度,选择UI自动化+API自动化结合,选择合适的业务点来进行针对性的自动化测试方案设计,才是最佳方案。①、使用频次较高,异

Logstash8.3.3 parse 包含a(AM PM)时间报错_dateparsefailure

遇到个奇奇怪怪的错误,我log中的时间是2023/08/2412:01:39AM,我写的格式化时间和转成东八区时间,但是就是一直报错_dateparsefailure,我反复检查了format没有问题,[xxxx][timestamp]这个字段从grok读出来也是正确的,百思不得其解。如果是这种的format的话,在g

热文推荐