vue3.x+ts+vite2环境变量配置

在做项目环境变量配置前,可以先到官网回忆一下环境变量的基本使用,https://cn.vitejs.dev/guide/env-and-mode.html

一、环境模式

首先环境变量是可以分模式的,常用模式如下:

.env                # 所有情况下都会加载
.env.local          # 所有情况下都会加载,但会被 git 忽略
.env.[mode]         # 只在指定模式下加载
.env.[mode].local   # 只在指定模式下加载,但会被 git 忽略

默认 dev 环境下使用 .env.development 环境变量配置,build 环境下使用 .env.production,所以不需要在 package.json 中再指定模式了

"scripts": {
  "dev": "vite --mode development", // --mode development可以省略,运行 npm run dev 自动指定
  "build": "vue-tsc --noEmit && vite build --mode production", // --mode production可以省略,运行 npm run build 自动指定
  "preview": "vite preview"
},

--mode 一般在其他特殊自定义下指定使用。

二、环境变量分类

2.1 默认环境变量

  • import.meta.env.MODE: {string} 应用运行的模式
  • import.meta.env.BASE_URL: {string} 部署应用时的基本 URL
  • import.meta.env.PROD: {boolean} 应用是否运行在生产环境
  • import.meta.env.DEV: {boolean} 应用是否运行在开发环境 (永远与 import.meta.env.PROD相反)

2.2 应用级环境变量

VITE_ 开头,这样会被vite处理,如下:

.env.developlent

VITE_API_URL=/api/
VITE_LOCATION_ORIGIN=http://localhost:3000/

另外自定义的环境变量,还需要在 env.d.ts 中声明变量类型

/// <reference types="vite/client" />

interface ImportMetaEnv {
  readonly VITE_TITLE: string
  readonly VITE_API_URL: string
}

interface ImportMeta {
  readonly env: ImportMetaEnv
}

declare module '*.vue' {
  import type { DefineComponent } from 'vue'
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
  const component: DefineComponent<{}, {}, any>
  export default component
}

三、加载优先级

模式覆盖通用,如:在生产环境下,.env.production 中的同名环境变量会覆盖 .env 中同名配置,其他同理

四、环境变量使用

Vite把环境变量通过 import.meta.env 暴露出来,在 .vue 中使用方式如下:

<script setup lang="ts">
  console.log(import.meta.env)
</script>

但如果要在 axios 中使用就需要特别配置了,需要在 vite.config.js 中加载环境变量,我们可以像以下这种方式处理:

import { defineConfig, loadEnv } from 'vite'

// https://vitejs.dev/config/
export default ({ mode }) => defineConfig({
  define: {
    'process.env': loadEnv(mode, process.cwd())
  },
}

这样配置完成后就可以在 plugins 下 axios.ts 中使用了

const {
  VITE_API_URL
} = process.env

const instance = axios.create({
  baseURL: VITE_API_URL
});

export default instance

更多前端知识,请关注小程序,不定期有惊喜!

image.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
配置Vue3 + Vite + TypeScript环境中,可以按照以下步骤进行操作: 1. 创建项目:根据中的引用,您可以创建一个新的项目。 2. 路由配置修改:根据中的引用,您可以修改基础路由和路由守卫配置。 3. Pinia配置修改:根据中的引用,您可以修改Pinia配置。 4. 生产与开发环境配置:根据和中的引用,您可以创建.env.production和.env.development文件,并在其中配置相应的变量。 5. 其余小配置:根据中的引用,您可以进行其他小配置的修改,比如自启与Network的配置、自动引入组件和Vue方法的插件配置等。 具体操作步骤如下: 1. 在根目录下创建.env.production和.env.development文件,并在其中配置变量VITE_开头,后面接变量名。例如,可以配置VITE_ENV来指定环境VITE_APP_BASE_API来指定基地址等。 2. 根据需要,修改项目的路由配置,包括基础路由和路由守卫配置。 3. 根据需要,修改Pinia的配置。 4. 根据需要,进行其他小配置的修改,比如自启与Network的配置、自动引入组件和Vue方法的插件配置等。 请注意,这只是一个大致的操作指南,具体的配置过程可能会因项目需求而有所不同。建议您参考相关文档和教程,以确保正确配置您的Vue3 + Vite + TypeScript项目的环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [关于vue3+vite+ts项目搭建配置](https://blog.csdn.net/qq_58061710/article/details/129497444)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Vite + Vue3 + ts 注册登录页面书写 搭配Nodejs + Express + postgresql接口](https://download.csdn.net/download/qq_42425561/85103234)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天空还下着雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值