Vue3: vite打包环境变量配置

vite打包环境变量配置

环境变量

Vite 在一个特殊的 import.meta.env 对象上暴露环境变量。这里有一些在所有情况下都可以使用的内建变量:

  • import.meta.env.MODE: {string} 应用运行的模式。

  • import.meta.env.BASE_URL: {string} 部署应用时的基本 URL。他由base 配置项决定。

  • import.meta.env.PROD: {boolean} 应用是否运行在生产环境(使用 NODE_ENV=‘production’ 运行开发服务器或构建应用时使用 NODE_ENV=‘production’ )。

  • import.meta.env.DEV: {boolean} 应用是否运行在开发环境 (永远与 import.meta.env.PROD相反)。

  • import.meta.env.SSR: {boolean} 应用是否运行在 server 上。

.env 文件

环境加载优先级 份用于指定模式的文件(例如 .env.production)会比通用形式的优先级更高(例如 .env)。
另外,Vite 执行时已经存在的环境变量有最高的优先级,不会被 .env 类文件覆盖。例如当运行 VITE_SOME_KEY=123 vite build 的时候。
.env 类文件会在 Vite 启动一开始时被加载,而改动会在重启服务器后生效。

Vite 使用 dotenv 从你的 环境目录 中的下列文件加载额外的环境变量:

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

注意

为了防止意外地将一些环境变量泄漏到客户端,只有以 VITE_ 为前缀的变量才会暴露给经过 vite 处理的代码。例如下面这些环境变量:

VITE_SOME_KEY=123
DB_PASSWORD=foobar

只有 VITE_SOME_KEY 会被暴露为 import.meta.env.VITE_SOME_KEY 提供给客户端源码,而 DB_PASSWORD 则不会。

console.log(import.meta.env.VITE_SOME_KEY) // "123"
console.log(import.meta.env.DB_PASSWORD) // undefined
### 使用 Vite 构建 Vue 3 和 TypeScript 项目 构建一个基于 Vue 3 和 TypeScript 的项目涉及多个方面,包括安装必要的依赖项、编写打包脚本以及配置开发服务器。 #### 安装依赖项 为了启动并运行此项目,需确保 `package.json` 中包含了所需的依赖项: ```json { "name": "vite-project", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vue-tsc && vite build", "preview": "vite preview" }, "dependencies": { "vue": "^3.3.4" }, "devDependencies": { "@vitejs/plugin-vue": "^4.2.3", "typescript": "^5.0.2", "vite": "^4.4.5", "vue-tsc": "^1.8.5" } } ``` 上述配置展示了项目的名称、版本号以及其他元数据。值得注意的是,在 `scripts` 字段下定义了几条命令用于开发(`dev`)、生产环境下的编译(`build`)和预览(`preview`)操作[^1]。 #### 编写打包脚本 对于构建过程而言,主要关注点在于 `build` 脚本部分: ```bash "build": "vue-tsc && vite build" ``` 这条指令首先调用了 `vue-tsc` 对整个应用程序进行了类型检查;接着通过 `vite build` 进行实际的打包处理。这一步骤会读取源码中的 `.ts` 或者 `.tsx` 文件,并将其转换成浏览器可以理解的形式,同时优化资源以便更好地部署至线上环境中去。 #### 配置环境变量 考虑到不同环境下可能存在的差异性需求,可以通过如下方式引入自定义设置: ```javascript import { defineConfig, loadEnv } from 'vite' export default defineConfig(({ command, mode }) => { const env = loadEnv(mode, process.cwd(), '') return { define: { __APP_ENV__: JSON.stringify(env.APP_ENV), }, } }) ``` 这里利用了 Vite 提供的 `loadEnv()` 方法动态加载对应的 `.env.*` 文件内容作为全局常量注入到应用内部,从而实现灵活调整行为的目的[^2]。 综上所述,按照以上步骤完成相应配置之后即可顺利地使用 Vite 来构建包含 Vue 3 及其官方支持的语言特性——TypeScript 的前端工程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西魏陶渊明

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

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

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

打赏作者

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

抵扣说明:

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

余额充值