• vite+vue3+typescript的env变量使用方法


    env环境变量

    vite在import.meta.env 对象上暴露环境变量。固定的环境变量有

    • import.meta.env.MODE: string类型,应用运行的模式,通过 vite --model dev 或者 vite build --model prod 指定
    • import.meta.env.BASE_URL: string类型,由base配置项决定
    • import.meta.env.PROD: boolean,应用是否运行在生成环境
    • import.meta.env.DEV: boolean,应用是否运行在开发环境

    .env 文件

    vite从下列文件加载额外的环境变量

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

    加载的环境变量通过import.meta.env暴露给客户端源码

    .env 文件目录

    通过envDir配置项配置,如果不配置,默认是跟vite.config文件所在同目录

    {
        plugins: [vue() ],
        envDir'./env',
        ...
      };

    env前缀

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

    APP=demo
    VITE_KEY=123

    只有VITE_KEY会被暴露为 import.meta.env.VITE_KEY提供给客户端源码,而APP不会。
    当然也可以自定义env变量的前缀,使用envPrefix配置项

    {
        plugins: [vue() ],
        envDir'./env',
        envPrefix: ['VITE_','DZ_'],
        build:{
          manifesttrue
        }
      };

    添加配置项后,一下配置内容

    APP=demo
    VITE_KEY=123
    DZ_API=http://www.baidu.com

    VITE_KEYDZ_API都会通过import.meta.env暴露

    vite.config中使用env

    根据不同的mode,生成文件到不同目录。通过loadEnv加载环境变量

    import { defineConfig, loadEnv } from 'vite'
    import vue from '@vitejs/plugin-vue'

    export default defineConfig(({mode})=>{
      const envConfig = loadEnv(mode,'./env')
      const result = {
        plugins: [vue() ],
        envDir'./env',
        envPrefix: ['VITE_','DZ_'],
        build:{
          manifesttrue,
          outDir`./dist/${mode}`
        }
      };
      return result;
    })

    TypeScript 智能提示

    在src目录下的env.d.ts文件,添加如下内容

    interface ImportMetaEnv {
      readonly VITE_KEY: string;
      readonly DZ_API: string;
      // 更多环境变量...
    }

    interface ImportMeta {
      readonly env: ImportMetaEnv
    }
  • 相关阅读:
    kubernetes添加不了google apt-key
    The command 'xxx' returned a non-zero code: 100
    gitlab autuo devops
    zabbix监控流程图
    xshell全局设置配色方案
    设置行,列尺寸,权重weight(tkinter,Python3.x)
    Tkinter 的 Text 组件
    Python字符串颜色输出
    tkinter Frame relief属性演示
    Tkinter 的组件 PanedWindow
  • 原文地址:https://www.cnblogs.com/zhaord/p/16009131.html
Copyright © 2020-2023  润新知