Vue模式对应的环境变量配置及使用场景

发布于:2023-01-04 ⋅ 阅读:(460) ⋅ 点赞:(0)

1.Vue的模式

  • development 模式用于 vue-cli-service serve (开发环境)
  • test 模式用于 vue-cli-service test:unit (测试环境 --- 一般开发中为确保项目不会出错,都会设置测试环境供测试人员进行测试,也就是test )
  • production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e (生产环境)

也就是package.json中对应的代码片段,通过在node中运行对应的命令来匹配不同的环境

当运行行 vue-cli-service 命令时,所有的环境变量都从对应的环境文件中载入,以下图为例,我们当前想在测试环境就运行:npm run build:test  打包后的文件就是test环境 ,而执行npm run dev就是我们的开发环境啦

像Vue官网说的我们可以通过--mode 选项参数为命令行覆写默认的模式。例如,如果你想要在构建命令中使用开发环境变量(上图代码也是如此实现):

vue-cli-service build --mode development

还有其他选项修饰符比如 --open 在我们启动项目时可自动在浏览器中打开项目:

命令的使用具体可参考Vue官网: CLI 服务 | Vue CLI

2.配置环境变量

项目中以.env.mode开头的文文件会在对应的环境下被载入,如下图:当我们执行npm run build:test时.env.test文件会被自动加载

.env.[mode]         # 只在指定的模式中被载入

 NODE_ENV 变量决定运行的模式,是开发,生产还是测试,也决定了创建哪种 webpack 配置。

例如通过将 NODE_ENV 设置为 "test",Vue CLI 会创建一个优化过后的,并且旨在用于单元测试的 webpack 配置,它并不会处理图片以及一些对单元测试非必需的其他资源。

同理,NODE_ENV=development 创建一个 webpack 配置,该配置启用热更新,不会对资源进行 hash 也不会打出 vendor bundles,目的是为了在开发的时候能够快速重新构建。

运行 vue-cli-service 命令时,所有的环境变量都从对应的环境文件中载入。如果文件内部不包含 NODE_ENV 变量,它的值将取决于模式,例如,在 production 模式下被设置为 "production",在 test 模式下被设置为 "test",默认则是 "development"

当你运行 vue-cli-service build 命令时,无论你要部署到哪个环境,应该始终把 NODE_ENV 设置为 "production" 来获取可用于部署的应用程序,下面图二图三为运行 vue-cli-service build后的test和production环境,应该始终把 NODE_ENV 设置为 "production" 

如上图可以设置同一个变量在不同环境下的值来实现想要的效果,最常用的就是配置不同环境下的请求头,可以通过process.env获取当前环境下.env.[当前环境]文件中的所有变量

 配置不同环境下的配置:

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到