美文网首页
Vite环境变量的配置与实际应用

Vite环境变量的配置与实际应用

作者: 不愿透露姓名的董师傅 | 来源:发表于2023-02-22 13:59 被阅读0次

Vite中配置环境变量,与Vue2.0类似,都是通过.env文件来实现的。可以通过Vite官方文档先大致了解下环境变量。下面我们会讲解如何配置和使用环境变量。

一、配置

项目根目录中创建 .env.development.env.production文件,分别对应开发和生产环境。
文件内容如下:

// 开发环境
VITE_APP_BASE_API = "http://development.cn/"
VITE_APP_TITLE = "[dev]页面标题"
// 生产环境
VITE_APP_BASE_API = "http://production.cn/"
VITE_APP_TITLE = "页面标题"

当执行npm run dev时,会获取 .env.development中的变量作为环境变量,npm run build则会获取.env.production

如何增加多环境配置?

有时候我们需要通过CI发布到多种不同的环境进行测试、演示,那么我们该如何增加配置环境呢?只要根据规则在根目录增加对应的变量文件,并在package.json中填写对应的命令即可,具体步骤如下:

  1. 新增 .env.testa
// 测试环境A
VITE_APP_BASE_API = "http://testa.cn/"
VITE_APP_TITLE = "[testa]页面标题"
  1. package.json中增加对应命令
{
  "name": "myProject",
  // ...
  "scripts": {
    "dev": "vite",
    // "dev": "vite --mode testa ", // 也可以在本地开发时使用testa的环境变量
    "build": "vite build",
    "build:testa": "vite build --mode testa", // 关键是这里的 --mode testa
    "preview": "vite preview"
  }
  //...
}

接下来我们执行npm run build:testa就可以构建出基于.env.testa文件的产物了。

注意:为了防止意外地将一些环境变量泄漏到客户端,只有以 VITE_为前缀的变量才会暴露给经过 vite 处理的代码。如果你想修改前缀,请参考官方文档教程。

二、 实际应用

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

aixos配置baseURL

const service = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_URL, // http://development.cn/
    timeout: 5000
})

.vue 文件中使用

为了方便在vue文件中使用,我们可以在main.js中将它挂载到Vue实例上。

  import App from './App.vue'
  Vue.prototype.$env = import.meta.env

demo.vue

<!-- [dev]页面标题 -->
<div>{{ $env.VITE_APP_TITLE }}</div> 

页面中使用

有时候我们需要在html文件中使用环境变量,此时,我们需要借助插件vite-plugin-html来实现。
安装:

npm i vite-plugin-html -D

配置vite.config.js

import { defineConfig, loadEnv } from 'vite'
import { createHtmlPlugin } from "vite-plugin-html";

const getViteEnv = (mode, target) => {
    return loadEnv(mode, process.cwd())[target];
};

export default defineConfig({
    plugins: [
        createHtmlPlugin({
            inject: {
                data: {
                    title: getViteEnv(mode, "VITE_APP_TITLE")
                },
            },
        }),
      // ...
    ]
})

index.html中使用:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><%- title %></title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

关于该组件的具体参数配置,详见官方说明

相关文章

网友评论

      本文标题:Vite环境变量的配置与实际应用

      本文链接:https://www.haomeiwen.com/subject/fwkpkdtx.html