Vite配置环境变量以及动态更新html数据

一、设置配置文件

javascript 复制代码
// .env
// 公共配置文件,总是生效
VITE_BASE_API_URL='http://localhost:3000'

// .env.development
VITE_BASE_API_URL='/api'
VITE_TAB_TITLE='development title'

// .env.production
VITE_BASE_API_URL='/api'
VITE_TAB_TITLE='production title'

二、安装插件

bash 复制代码
npm i create-html-plugin -D

三、在Vite.config.ts中设置获取环境变量

javascript 复制代码
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import { createHtmlPlugin } from 'vite-plugin-html'

// 获取环境变量文件中的键值对
const getViteEnv = (mode: string, key: string) => {
  return loadEnv(mode, process.cwd())[key]
}

// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
  console.log(getViteEnv(mode, 'VITE_TAB_TITLE'))
  return {
    plugins: [
      vue(),
      // html插件,负责更新不同环境下的title等数据
      createHtmlPlugin({
        inject: {
          data: {
            systemConfig: {
              tabTitle: getViteEnv(mode, 'VITE_TAB_TITLE')
            }
          }
        }
      })
    ],
    resolve: {
      alias: {
        '@': resolve(__dirname, 'src')
      }
    }
  }
})

四、使用

html 复制代码
    <title><%= systemConfig.tabTitle %></title>
相关推荐
步菲1 小时前
springboot canche 无法避免Null key错误, Null key returned for cache operation
java·开发语言·spring boot
知远同学6 小时前
Anaconda的安装使用(为python管理虚拟环境)
开发语言·python
小徐Chao努力7 小时前
【Langchain4j-Java AI开发】09-Agent智能体工作流
java·开发语言·人工智能
CoderCodingNo7 小时前
【GESP】C++五级真题(贪心和剪枝思想) luogu-B3930 [GESP202312 五级] 烹饪问题
开发语言·c++·剪枝
2501_946230987 小时前
Cordova&OpenHarmony通知中心实现
android·javascript
南山安7 小时前
JavaScript 函数柯里化:从入门到实战,一文搞定(面试可用)
javascript·面试·函数式编程
kylezhao20197 小时前
第1章:第一节 开发环境搭建(工控场景最优配置)
开发语言·c#
啃火龙果的兔子7 小时前
JavaScript 中的 Symbol 特性详解
开发语言·javascript·ecmascript
栀秋6667 小时前
你会先找行还是直接拍平?两种二分策略你Pick哪个?
前端·javascript·算法
漂流瓶jz7 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·css