Vue中.env|.env.development|.env.production文件说明

本文详细介绍了Vue CLI项目中不同模式(如development、test、production)的应用,重点讲解了NODE_ENV环境变量如何决定应用模式,并阐述了.env、.env.development和.env.production文件的加载规则。此外,还指导了如何自定义test环境配置和使用process.env在项目中的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.介绍

模式是Vue CLI项目中一个重要的概念,默认情况下,一个Vue CLI项目有三种模式:

  • developemt 模式用于vue-cli-service serve
  • test 模式用于vue-cli-service test:unit
  • production 模式用于vue-cli-service build 和vue-cli-service test:e2e

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

NODE_ENV将决定你的应用运行的模式,是开发,生产还是测试,因此也决定了创建哪种webpack配置

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

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

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

1.在Vue项目中,通常配置文件有:

  • env 全局默认配置文件,无论什么环境都会加载合并
  • .env.development 开发环境下的配置文件
  • .env.production 生产环境下的配置文件

2.命名规则

注意:属性名必须以VUE_APP开头,比如VUEP_APP_XXX

3.关于文件的加载:

关于启动命令Vue会自动加载对应的环境,vue是根据文件名进行加载的

比如当你执行npm run serve命令,会自动加载.env.development文件

npm run serve ----NODE_ENV=development

注意:.env文件无论是来发还是生产都会加载

 如上图,如果我们运行npm run serbe就会先加载.env文件,之后加载.env.development文件,两个文件有同一项,则后加载的文件就会覆盖掉第一个文件,即.env.development文件覆盖掉了.env文件的NOOE_ENV选项

同理,如果执行了npm run build,则就是执行了.env和.env.production文件

npm run build ---NODE_ENV = production

4.关于使用

        直接调用process.env属性(全局属性,任何地方都可以使用)

例如:直接打印process.env属性:

4.1 在.vue文件中使用

在这里插入图片描述

4.2 在.js文件中 

 注意:js文件中可以添加JSON.stringfy(xxx),解析成字符,但是vue中不能

5.自定义环境

第一步:创建.env.test文件

第二部:配置环境及地址

# 测试环境
NODE_ENV=production
VUE_APP_ENV=test
#请求接口基准地址
VUE_APP_BASE_API=地址一
#业务系统地址
VUE_APP_protalUrl=地址二
#市门户地址
VUE_APP_menhuUrl=地址三
#腾讯统计分析id
VUE_APP_sid=腾讯ID

第三步:配置package.json

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

配置完成,使用命令npm run test 即可以打包test环境的包。

最后,附上一张总结图

### Vue.js 环境变量配置 `.env` 文件 使用说明 `.env` 文件Vue.js 项目中主要用于管理不同环境下的配置,通过这些文件可以轻松实现开发、测试和生产环境之间的切换。以下是关于 `.env` 文件的具体用途及配置方法: #### 1. 基本概念 Vue CLI 提供了一种简单的方式来设置环境变量,所有的环境变量都必须以 `VUE_APP_` 开头才能被 Vue CLI 所读取并注入到客户端代码中[^1]。 - **全局默认配置文件**:`.env` 这个文件中的配置会在任何环境下都被加载,并与其他环境特定的配置文件合并。 - **开发环境配置文件**:`.env.development` 当运行 `npm run serve` 或其他开发命令时,该文件会被自动加载,适用于本地调试阶段[^2]。 - **生产环境配置文件**:`.env.production` 部署应用至线上之前构建时使用的配置文件,在执行 `npm run build` 后生效。 #### 2. 配置方式 为了使环境变量能够正常工作,需遵循以下规则: - 属性名称必须以前缀 `VUE_APP_` 开始; - 不要随意更改命名约定(如 `.env.development`),因为 Vue 是基于文件名来决定何时加载哪些配置[^4]; ##### 示例配置 假设我们需要为 API 请求指定基础 URL,则可以在相应的 `.env.*` 文件里这样定义: ```plaintext // .env.development VUE_APP_BASE_URL=http://localhost:8080/api/ // .env.production VUE_APP_BASE_URL=https://production-api.example.com/api/ ``` 上述例子展示了如何针对不同的部署场景分别设定服务端接口的基础路径[^3]。 #### 3. 结合 vue.config.js 实现跨域处理 除了简单的键值对存储外,还可以利用 `vue.config.js` 来进一步增强功能支持,比如设置 Webpack Dev Server 的反向代理规则以便于解决前后端分离带来的 CORS (Cross-Origin Resource Sharing) 问题: ```javascript module.exports = { publicPath: '/', outputDir: 'dist', assetsDir: 'statics', devServer: { proxy: { '/api': { target: process.env.VUE_APP_BASE_URL, ws: true, changeOrigin: true, pathRewrite: {'^/api': ''} } } } }; ``` 此段脚本片段实现了将 `/api/*` 类型请求转发给后台服务器的同时还替换了原始 URI 中多余的前缀部分。 #### 4. 加载优先级 如果多个 `.env*` 文件存在相同的 key 定义情况,那么最后解析的那个版本将会覆盖前面已有的值。例如,当你同时设置了 `.env` 和 `.env.development` 并且两者都有 `VUE_APP_SOME_KEY` 参数的情况下,实际运行过程中会采用后者的内容作为最终结果。 ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值