vite - 设置不同环境的打包命令及配置

原由:同一套业务逻辑的代码需要根据使用的地区不同,同一个位置的显示内容会发生改变

想法:打包时根据不同的命令获取其所设置的环境参数内容

基本信息

备注:默认情况下模式都会被覆盖掉,可以使用--mode改写(文档

json 复制代码
-- package.json -- 

"build": vite build // 一般情况下打包正式环境的命令 => vite build -- mode production

其对应的环境是production生产环境,对应的配置文件名称为.env.production

例子:以创建中国地区内容为例

  1. 根目录下创建配置文件为.env.production.china
  2. package.json补充打包命令
json 复制代码
-- package.json -- 

"build": vite build // 一般情况下打包正式环境的命令 == vite build -- mode production
+ "build:china": vite build --mode production.china
  1. 编写配置文件内容

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

javascript 复制代码
-- .env.production.china --

VITE_APP_TITLE=中国地区

VITE_PHONE=86-123456789
javascript 复制代码
-- .env.production --

VITE_APP_TITLE=海外地区

VITE_PHONE=xx-123456789

使用一、html文件的title设置

  1. 安装插件
cmd 复制代码
npm i vite-plugin-html
  1. 在配置文件中设置
javascript 复制代码
-- vite.config.js --

import { defineConfig, loadEnv } from 'vite';
// 引入插件
import { createHtmlPlugin } from 'vite-plugin-html'

export default defineConfig(({ command, mode }) => ({
  plugins: [
    createHtmlPlugin({
      inject: {
        data: {
          // 设置标题
          title: loadEnv(mode, process.cwd())[VITE_APP_TITLE]
        }
      }
    })
  ],
}))
  1. index.html中使用
html 复制代码
<title><%- title %></title>

使用二、单页面应用中设置

vue 复制代码
<template>
 {{ phone }}
</template>

<script setup>
import { computed } from 'vue';

const envConfig = import.meta.env;
const phone = computed(() => envConfig.VITE_PHONE)
</script>

打包

对应的环境就运行对应环境的命令即可

参考链接

  1. 官网(环境变量与模式):www.vitejs.net/guide/env-a...
相关推荐
关羽的小刀4 分钟前
Element-UI最新版暗藏Lodash漏洞?一次真实项目安全排查记录
前端
张志鹏PHP全栈4 分钟前
Vue3第五天,ref 和 reactive的介绍和区别
前端·vue.js
郭邯6 分钟前
import.meta对象是什么?
前端
用泥种荷花22 分钟前
【NPM 笔记(一)】NPM 入门知识:命令、依赖与脚本核心
前端
大巨头23 分钟前
在vscode中使用通义灵码插件记录分享
前端
江城开朗的豌豆25 分钟前
Vue/React凭什么吊打传统前端?6年老司机带你揭秘它们的性能杀招!
前端·javascript·vue.js
江城开朗的豌豆26 分钟前
虚拟DOM:为什么React/Vue比直接操作DOM快10倍?
前端·javascript·vue.js
mrsk27 分钟前
JavaScript中的大数相加是怎么突破数字的极限的?
前端·javascript·面试
mrsk27 分钟前
JavaScript作用域:变量的「地盘」之争
前端·javascript·面试
北京_宏哥27 分钟前
《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
java·前端·面试