vue中的.env文件分析

Vue项目的.env文件用于配置不同环境的变量,如.development和.production,模式如development、production、test。环境变量通过process.env访问,在脚本中可通过--mode指定运行模式。这些文件帮助开发者在不同环境下管理配置。

问题说明

有米有小伙伴, 在看一个新鲜的项目的时候, 会发现在项目中会有类似于下方的文件。
那这些文件是干什么的呢?
它们在项目中会有什么作用呢?
如何调用这些文件的呢
在这里插入图片描述

问题解答

0,对于vue中模式与环境变量的说明

可直接看官网:点击跳转

  1. 模式

development 模式:表示开发环境,用于 vue-cli-service serve命令(默认
production模式:用户 vue-cli-service build 和 vue-cli-service test:e2e 命令
test模式;用于vue-cli-service test:unit

也可以通过–mode 选项参数作为命令行来指定模式
比如在打包时使用开发环境,可以在脚本中指定:

vue-cli-service build --mode development

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

  • 环境文件说明
    就是在项目根目录放置的下列文件来指定环境变量
.env                # 在所有的环境中被载入
.env.local          # 在所有的环境中被载入,但会被 git 忽略
.env.[mode]         # 只在指定的模式中被载入
.env.[mode].local   # 只在指定的模式中被载入,但会被 git 忽略

而对于每一个环境文件中,包含只能环境变量的键值对。

1,这些文件的干什么的?

.env文件是运行项目时的环境配置文件。但是在实际开发中,会有多个环境需要我们进行切换。 比如本地环境,生产环境,开发环境,预生产环境,测试环境等。

对于不同的环境对应的配置是不同的,因此,需要通过不同的env文件实现不同环境的配置,方便差异化管理。

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

2,这些文件如何定义

就是在项目根目录放置的下列文件来指定环境变量,如上图
对于文件中的内容,是由一个一个键值对组成的。类似与下面

NODE_ENV=development
VUE_APP_OP_ENV=test
VUE_APP_API_PATH_PORT=*******
VUE_APP_API_PATH_IP=*******
VUE_APP_UNIFIED_DOMAIN=*******
VUE_APP_QUERY_DOMAIN=*******
VUE_APP_PAGE_DOMAIN=*******
VUE_APP_OP_PATH=*******
3,如何去调用这些文件

举例:
1,声明一个.env.stage文件

2,可调用方式有两种:

"serve": "vue-cli-service serve --mode stage",
直接npm run serve 可直接调用
"serve": "vue-cli-service serve --mode ",
npm run serve stage 进行调用

另外如果在代码中获取到env文件中的内容的话,调用方式为:

process.env.****
如: 
console.log(process.env.NODE_ENV)

process对象是一个全局变量,提供了有关当前Node.js进程的信息并对其进行控制。

process.env 可以查看当前项目运行环境的信息

可以修改process属性的值    process.env.foo= 1;
使用delete可以从process.env中删除属性    delete   process.env.foo
windows操作系统上,环境变量不区分大小写
在 Docker 中修改 Vue 的 `.env` 文件配置可按以下步骤操作: 1. **修改 `.env` 文件内容**:在本地项目中找到 `.env` 文件,按照需求修改其中的配置。例如,若要将 `VUE_APP_BASE_API` 的值修改为 `'/prod-api'`,可在 `.env` 文件里进行修改,即 `VUE_APP_BASE_API = '/prod-api'` [^2]。 2. **构建 Docker 镜像**:编写 `Dockerfile` 以构建 Vue 项目镜像。示例如下: ```Dockerfile #wqs_20210331 dockerfile # 使用 nginx 最新版本作为基础镜像 FROM nginx # 删除原来 nginx 自带的配置文件 RUN rm -vf /etc/nginx/conf.d/default.conf # 复制自己写的配置文件 COPY ./conf.d/ /etc/nginx/conf.d/ # 将当前文件夹的 dist 文件复制到容器的 /usr/share/nginx/html 目录 COPY ./dist /usr/share/nginx/html/ # 声明运行时容器暴露的端口(容器提供的服务端口,nginx 这里默认是 80 端口,所以可以注释掉) #EXPOSE 8080 # 持久化数据卷 VOLUME ["messageui"] CMD echo "finished,----success1" #CMD:指定容器启动时要运行的命令 CMD ["nginx", "-g", "daemon off;"] ``` 此 `Dockerfile` 会将修改后的 `.env` 文件(包含在项目中)的相关配置应用到 Docker 镜像里 [^2]。 3. **打包 Vue 项目**:把 Vue 项目打包成 `dist`,并将 `dist` 放到与 `Dockerfile` 同一目录下 [^2]。 4. **运行 Docker 容器时传递环境变量**:在启动 Docker 容器时,可通过 `-e` 参数传递环境变量来覆盖 `.env` 文件里的配置。例如: ```bash docker run -it --rm -p 80:80 -e WEB_API=http://baidu.com vue-mogu-admin ``` 此命令会在容器启动时将 `WEB_API` 环境变量设置为 `http://baidu.com` [^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值