VUE+Vite之环境文件配置及使用环境变量

在现代的前端开发中,我们经常需要根据不同的环境(如开发环境、生产环境和测试环境)来配置不同的参数。Vite,作为一个现代化的前端构建工具,提供了对环境文件和环境变量的原生支持,使得开发者能够轻松地管理和使用这些变量。

一、为什么要配置环境文件和环境变量?

在软件开发过程中,我们的应用程序需要在不同的环境中运行。例如,开发环境通常用于本地开发,生产环境用于部署到线上供用户使用,而测试环境则用于执行自动化测试。这些环境可能会有不同的配置需求,比如API的端点地址、服务的密钥等。通过配置环境文件和环境变量,我们可以确保在构建和运行应用程序时,能够根据当前的环境自动使用正确的配置。

二、环境文件存在哪?后缀名在哪决定?

1.环境文件一定要保存在项目的根目录下,这样Vite才能正确识别和加载它们。
2.环境文件的命名必须以.env为前缀,根据不同的环境,可以追加相应的后缀。例如,开发环境通常使用.env.development,生产环境使用.env.production,测试环境使用.env.test。
3.Vite会根据不同的命令行参数和模式来选择对应的环境文件。默认情况下,开发模式会加载.env.development,而构建生产版本时会加载.env.production。
4.在package.json的scripts字段中,我们可以通过“–mode”参数来指定Vite运行的模式。例如,在开发模式下,我们可以使用vite --mode development来指定加载.env.development文件。

我们可以通过在命令行中传递–mode参数来自定义Vite的运行模式,这样Vite会加载与指定模式相匹配的环境文件。例如,如果我们想要定义一个名为“staging”的新模式,我们可以在package.json的scripts字段中添加一个新的脚本,如下所示:

"scripts": {
  "dev": "vite --mode development",
  "build": "vue-tsc && vite build",
  "preview": "vite preview",
  "stage": "vite --mode staging"
}

在这个例子中,我们添加了一个新的脚本“stage”,它使用–mode staging参数。这将告诉Vite加载名为“.env.staging”的环境文件。

接下来,我们需要在项目根目录下创建一个名为“.env.staging”的文件,并在这个文件中定义所有适用于“staging”环境的变量。

三、环境变量怎么写?

1.环境变量必须以“VITE_”开头,这是Vite规定的命名规范,以区分普通的变量。不以VITE开头的环境变量不起作用。
2.环境变量的值后面不应该加上分号“;”,这会导致Vite无法正确解析变量。
正确的写法如下:

VITE_baseURL=127.0.0.1:8000

错误的写法如下(血泪教训啊!!!):

VITE_baseURL=127.0.0.1:8000;

四、环境变量怎么读出来?

1.在vite.config.ts中取得环境变量
在Vite的配置文件中,我们可以使用loadEnv函数来加载对应模式的环境变量。loadEnv函数接受两个参数,第一个参数是模式,第二个参数是项目根目录的路径。

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

export default ({ command, mode }) => {
  const targetUrl: string = loadEnv(mode, process.cwd()).VITE_baseURL;
  return defineConfig({
    plugins: [vue()],
    server: {
      open: false,
      port: 3000,
      proxy: {
        "/api": {
          target: targetUrl,
          changeOrigin: true,
          rewrite: (path) => path.replace(/^\/api/, ""),
        },
      },
    },
  });
};

如果需要使用process对象,我们需要安装@types/node类型定义文件。安装方法如下:

npm install --save-dev @types/node

2.在组件中取得环境变量

在Vue组件中,我们可以通过import.meta.env对象来访问定义在环境文件中的变量。例如,要访问baseURL,我们可以使用import.meta.env.VITE_baseURL。

总结

通过配置和使用环境文件和环境变量,我们可以在不同的环境下为我们的Vite项目提供适当的配置,从而使得我们的开发流程更加灵活和高效。

### Vue3 + Vite 配置生产与测试环境的最佳实践 在实际开发过程中,为了满足不同阶段的需求(如开发、测试和生产),通常需要对项目进行多环境配置。以下是基于 Vue3 和 Vite 的最佳实践方法。 #### 1. 创建 `.env` 文件 根据不同环境需求,分别创建对应的 `.env` 文件来存储特定的环境变量: - **`.env.development`**: 开发环境下的配置。 - **`.env.test`**: 测试环境下的配置。 - **`.env.production`**: 生产环境下的配置。 这些文件应放置于项目的根目录下[^1]。 #### 2. 配置具体的环境变量 在每个 `.env` 文件中定义所需的环境变量。例如: ##### .env.development ```plaintext VITE_APP_ENV=development VITE_API_URL=http://localhost:8080/api ``` ##### .env.test ```plaintext VITE_APP_ENV=test VITE_API_URL=https://test-api.example.com/api ``` ##### .env.production ```plaintext VITE_APP_ENV=production VITE_API_URL=https://api.example.com/api ``` 注意:所有以 `VITE_` 开头的变量会被自动注入到客户端代码中。 #### 3. 使用环境变量 在项目中的 JavaScript 或 TypeScript 文件里可以通过 `import.meta.env` 来访问已定义的环境变量。例如: ```javascript console.log(import.meta.env.VITE_APP_ENV); // 输出当前环境名称 console.log(import.meta.env.VITE_API_URL); // 输出 API 地址 ``` #### 4. 定义脚本命令 在 `package.json` 中设置用于启动不同环境的脚本命令: ```json { "scripts": { "dev": "vite", "build:test": "vite build --mode test", "build:prod": "vite build --mode production" } } ``` 执行以下命令可以切换至对应模式: - 运行开发服务器:`npm run dev` - 构建测试版本:`npm run build:test` - 构建生产版本:`npm run build:prod` #### 5. 结合移动端布局优化 如果项目是一个移动端应用,还可以参考类似的 H5 模板(如 vite-vue3-h5)。该模板集成了 Vue3、Vite2、Vant3 和 TypeScript,并支持 vw/rem 布局[^3]。这有助于进一步提升用户体验的一致性和适配能力。 --- ### 总结 通过上述步骤,可以在 Vue3 和 Vite 项目中实现高效且灵活的多环境管理方案。合理利用 `.env` 文件以及 `--mode` 参数能够显著简化跨环境部署流程并减少潜在错误的发生概率。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值