1、设置.env中的内容信息
注意vue3+vite不是必须使用VITE开头的配置信息
- NODE_ENV = "env" //
- VITE_NODE_ENV = "env" //VITE开头的给vue3+vite使用
2、在vite.config.js中配置
环境变量通常可以从 p
获得。
注意 Vite 默认是不加载 .env
文件的,因为这些文件需要在执行完 Vite 配置后才能确定加载哪一个,举个例子,root
和 envDir
选项会影响加载行为。不过当你的确需要时,你可以使用 Vite 导出的 loadEnv
函数来加载指定的 .env
文件。
- import { defineConfig, loadEnv } from 'vite'
- export default defineConfig(({ command, mode }) => {
- // 根据当前工作目录中的 `mode` 加载 .env 文件
- // 设置第三个参数为 '' 来加载所有环境变量,而不管是否有 `VITE_` 前缀。
- const env = loadEnv(mode, process.cwd(), '')
- return {
- // vite 配置
- define: {
- __APP_ENV__: env.APP_ENV,
- },
- }
- })
3、在 vite 中使用环境变量 import.meta.env
有四种环境变量,如下所示:
1、MODE,用来指明现在所处于的模式,一般通过它进行不同环境的区分,比如 dev、test、pre、prd 等等,默认为:“development”
2、BASE_URL,用来请求静态资源初始的 url
3、PROD,用来判断当前环境是否是正式环境
4、DEV,用来与 PROD 相反的环境
5、SSR,用来判断是否是服务端渲染的环境
4、使用环境变量
使用 import.meta.env.VITE_NODE_ENV 获取环境变量
console.log( import.meta.env) //查看相关信息
// 老版本的vue2+webpack的情况
还是使用 process.env.NODE_ENV
console.log( process.env) //查看相关信息
5、在package.json中配置模式
上面使用的时候是固定写法 需要切换.env 和 .env.pro 中不同的变量信息
在打包中配置 如下:
使用 --mode pro 进行设置
- "scripts": {
- "serve": "vite", //未指定默认取.env中的配置
- "dev": "vite --mode dev", // 取 .env.dev文件中的配置
- "pro": "vite --mode pro", // 取 .env.pro文件中的配置
- "build": "vue-tsc --noEmit && vite build", //未指定默认取.env中的配置
- "build:dev": "vue-tsc --noEmit && vite build --mode dev", // build的时候取dev的配置
- "build:pro": "vue-tsc --noEmit && vite build --mode pro", // build的时候取pro的配置
- "preview": "vite preview"
- },
最后, 想要在提交代码时忽略本地.env文件,还要在.gitignore文件中添加.local
- node_modules
- dist
- dist-ssr
- *.local
6、Vue3的Env环境变量配置的应用
.env(# 所有环境默认)
- # 所有环境默认
- # 页面 title 前缀
- VUE_APP_TITLE=某某某
- # 网络请求公用地址
- VUE_APP_API= /
.env.development(# 开发环境)
- # 开发环境
- # 指定构建模式
- VITE_NODE_ENV=development
- # 页面 title 前缀
- VUE_APP_TITLE=某某某
- # 网络请求公用地址
- VITE_APP_API=/api/
- # 首页是否显示登录
- VITE_SHOW_LOGIN='yes'
- VITE_SOME_APPENV='1000006'
.env.production(# 生产环境)
- # 构建预览页面
- # 指定构建模式 production
- VITE_NODE_ENV=test
- # 页面 title 前缀
- VUE_APP_TITLE=某某某
- # 网络请求公用地址
- VITE_APP_API=/
- # 首页是否显示登录
- VITE_SHOW_LOGIN='no'
- VITE_SOME_APPENV='1000002'
在页面中需要参与环境判断时则可使用
- console.log(import.meta.env)
在vite.config.js中使用,不能用import.meta.env,具体使用如下
- export default defineConfig(({ mode, command }) => {
- const env = loadEnv(mode, process.cwd());
- const { VITE_APP_ENV, VITE_APP_BASE_PATH } = env;
- return {...}
- })