import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.522debca.js";const d=JSON.parse('{"title":"配置多环境变量","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/env.md","lastUpdated":1679905840000}'),o={name:"guide/vue2/env.md"},p=l(`
package.json
里的 scripts
配置 serve
stage
build
,通过 --mode xxx
来执行不同环境
npm run serve
启动本地 , 执行 development
npm run stage
打包测试 , 执行 staging
npm run build
打包正式 , 执行 production
"scripts": {
"serve": "vue-cli-service serve --open",
"stage": "vue-cli-service build --mode staging",
"build": "vue-cli-service build",
}
以 VUE_APP_
开头的变量,在代码中可以通过 p
访问。
比如,VUE_APP_ENV = 'development'
通过p
访问。
除了 VUE_APP_*
变量之外,在你的应用代码中始终可用的还有两个特殊的变量NODE_ENV
和BASE_URL
在项目根目录中新建.env.*
NODE_ENV='development'
# must start with VUE_APP_
VUE_APP_ENV = 'development'
NODE_ENV='production'
# must start with VUE_APP_
VUE_APP_ENV = 'staging'
NODE_ENV='production'
# must start with VUE_APP_
VUE_APP_ENV = 'production'
这里我们并没有定义很多变量,只定义了基础的 VUE_APP_ENV development
staging
production
变量我们统一在 src/config/env.*.js
里进行管理。
这里有个问题,既然这里有了根据不同环境设置变量的文件,为什么还要去 config 下新建三个对应的文件呢?
修改起来方便,不需 要重启项目,符合开发习惯。
config/index.js
// 根据环境引入不同配置 process.env.NODE_ENV
const config = require("./env." + process.env.VUE_APP_ENV);
module.exports = config;
配置对应环境的变量,拿本地环境文件 env.development.js
举例,用户可以根据需求修改
// 本地环境配置
module.exports = {
title: "vue-h5-template",
baseUrl: "http://localhost:9018", // 项目地址
baseApi: "https://test.xxx.com/api", // 本地api请求地址
APPID: "xxx",
APPSECRET: "xxx",
};
根据环境不同,变量就会不同了
// 根据环境不同引入不同baseApi地址
import { baseApi } from "@/config";
console.log(baseApi);