vue中的env环境使用
# process.env.NODE_ENV 的确定与使用
process.env.NODE_ENV 是一个环境变量,用于指示当前的执行环境(例如开发环境或生产环境)。它通常在构建或运行应用时被设置。
# 设置 process.env.NODE_ENV
通过命令行:
- 在运行 Vue CLI 的命令时,可以直接设置环境变量:
- 开发环境(默认):
npm run serve1 - 生产环境:在 Windows 上:
NODE_ENV=production npm run build1set NODE_ENV=production && npm run build1
- 开发环境(默认):
- 在运行 Vue CLI 的命令时,可以直接设置环境变量:
通过
.env文件:- 可以在项目根目录下创建
.env文件,并在其中定义环境变量。 - 例如,您可以创建以下文件:
.env.development:NODE_ENV=development1.env.production:NODE_ENV=production1
- 可以在项目根目录下创建
在脚本中通过 Node.js:
- 不推荐直接在 Node.js 脚本中设置
process.env.NODE_ENV,因为这可能会导致不可预测的行为。
- 不推荐直接在 Node.js 脚本中设置
# 使用 process.env.NODE_ENV
在代码中,可以通过 process.env.NODE_ENV 来判断当前环境并进行不同的配置或逻辑处理。例如:
if (process.env.NODE_ENV === 'production') {
console.log('Running in production mode');
} else {
console.log('Running in development mode');
}
1
2
3
4
5
2
3
4
5
# Vue CLI 的环境变量配置文件
在 Vue CLI 项目中,运行 npm run build 和 npm run serve 时,默认加载的环境变量配置文件如下:
# 默认加载的配置文件
开发环境 (
npm run serve):.env.development: 适用于开发环境,默认加载。.env: 通用配置,适用于所有环境。
生产环境 (
npm run build):.env.production: 适用于生产环境,默认加载。.env: 通用配置,适用于所有环境。
# 加载顺序
npm run serve时,加载顺序为:.env.development.env
npm run build时,加载顺序为:.env.production.env
# 设置多个环境
您可以为不同的环境创建不同的 .env 文件:
.env: 通用变量。.env.development: 开发环境。.env.production: 生产环境。.env.test: 测试环境。
# 示例
假设您有以下环境文件:
.env:VUE_APP_API_URL=https://api.example.com1.env.development:VUE_APP_API_URL=http://localhost:30001.env.production:VUE_APP_API_URL=https://api.production.com1.env.test:VUE_APP_API_URL=http://localhost:40001
# 运行不同环境的构建
开发环境构建:
- 使用命令
npm run serve,加载.env.development和.env文件。
- 使用命令
生产环境构建:
- 使用命令
npm run build,加载.env.production和.env文件。
- 使用命令
测试环境构建(自定义):
- 创建
.env.test文件并使用类似npm run build --mode test的命令来加载测试环境的配置。
- 创建
# 示例 package.json
{
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"build:test": "vue-cli-service build --mode test"
}
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# 小结
process.env.NODE_ENV用于指示当前环境,通常在运行或构建时通过命令行或.env文件设置。- Vue CLI 会根据当前环境自动加载相应的
.env文件,您可以为不同环境创建多个环境配置文件以满足需求。
在线编辑 (opens new window)
上次更新: 2025/02/25, 18:30:54