vite.config.ts配置

2025-12-13 0 833

vite.config.ts 是 Vite 项目的配置文件,用于配置构建选项和插件。以下是一个详细的配置及说明:

base:用于指定项目的基础路径,通常用于将项目部署到子路径的情况。

默认值:\’/\’
build:包含了构建相关的配置选项。

outDir:构建输出目录。
minify:是否压缩代码。
sourcemap:是否生成sourcemap。
server:用于配置开发服务器。

host:主机地址。
port:端口号。
proxy:代理设置。
resolve:用于配置模块解析规则。

alias:路径别名。
extensions:模块文件后缀名的解析顺序。
plugins:用于配置 Vite 插件。可以对代码进行转换、引入第三方库等。

define:用于定义全局变量。

在此可以定义一些常量,比如不同环境下的接口地址、应用名称等。
css:用于配置 CSS 相关的选项。

preprocessorOptions:预处理器选项。
importLoaders:导入加载器数量。
sbuild:用于配置 esbuild 相关的选项。

jsxFactory:JSX 工厂函数名称。
jsxFragment:JSX 片段工厂函数名称。
env:用于定义环境变量。可以在不同的环境(如开发、生产)下使用不同的设置。

rootDir:项目根目录,默认为当前工作目录。

publicDir:静态资源服务的文件夹,打包时 public 文件夹内容会被复制到 dist 文件夹下。

assetsDir:静态资源目录,编译时会被复制到 dist 文件夹下。

outputDir:编译后的文件输出目录,默认为 \’dist\’。

scriptPreload:预加载脚本的 URL,用于在页面加载前预加载脚本,提高页面加载速度。

buildInPlugins:构建时自动加载的插件列表,可以指定多个插件,用逗号分隔。

defineConfig:定义全局变量的配置项,可以通过在项目根目录下的 vite.config.ts 文件中进行定义和使用。例如 defineConfig({ define: { DEBUG: true } }) 会在整个项目中定义一个名为 DEBUG 的全局变量,值为 true。

serverMiddleware:开发服务器中间件配置项,可以在项目根目录下的 vite.config.ts 文件中进行定义和使用。中间件可以在请求和响应之间对数据进行处理,可以用来实现跨域请求、自定义路由等功能。

clientBuildTimeout:客户端构建超时时间,单位为毫秒,默认为 30000 毫秒(30 秒)。当客户端构建超过该时间时,会抛出错误并终止构建过程。

buildOptions:构建选项配置项,可以在项目根目录下的 vite.config.ts 文件中进行定义和使用。该配置项用于指定构建过程中的各种选项和参数,如压缩代码、生成源映射表等。

import { defineConfig, loadEnv } from \’vite\’
import type { UserConfig, ConfigEnv } from \’vite\’
import vue from \’@vitejs/plugin-vue\’
import vueJsx from \’@vitejs/plugin-vue-jsx\’ //tsx插件引入
import AutoImport from \’unplugin-auto-import/vite\’ //自动引入ref,reactive等等等

// 配置antd-v按需加载(可以用别的)
import Components from \’unplugin-vue-components/vite\’
import { AntDesignVueResolver } from \’unplugin-vue-components/resolvers\’

// import path from \’path\’;
import { resolve, join } from \’path\’
import { wrapperEnv } from \’./build/utils\’

// defineConfig 工具函数,这样不用 jsdoc 注解也可以获取类型提示
export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {

console.log(command, mode, \’===\’)
const root = process.cwd()
const env = loadEnv(mode, root) // 环境变量对象
console.log(\’环境变量——\’, env)
console.log(\’文件路径( process.cwd())——\’, root)
console.log(\’文件路径(dirname)——\’, __dirname + \’/src\’)
const { VITE_DROP_CONSOLE } = wrapperEnv(env)

// dev 独有配置
return {

root, //项目根目录(index.html 文件所在的位置) 默认: process.cwd()

base: \’/\’,
// 开发或生产环境服务的公共基础路径:默认\’/\’
// 1、绝对 URL 路径名: /foo/;
// 2、完整的 URL: https://foo.com/; 3、空字符串或 ./(用于开发环境)

//注意: 设置开发者模式以及生产模式访问路径
base: process.env.NODE_ENV === \”production\” ? \”/线上访问路径/\” : \”./\”,

publicDir: resolve(__dirname, \’./dist\’),
//默认\’public\’ 作为静态资源服务的文件夹 (打包public文件夹会没有,里面得东西会直接编译在dist文件下)

assetsInclude: resolve(__dirname, \’./src/assets\’),
// 静态资源处理

//*****定义全局变量******
define: {
MENU_PATH: `\”path\”`,
MENU_SHOW: `\”isShowOnMenu\”`,
MENU_KEEPALIVE: `\”keepAlive\”`,
MENU_KEY: `\”key\”`,
MENU_ICON: `\”icon\”`,
MENU_TITLE: `\”title\”`,
MENU_CHILDREN: `\”children\”`,
MENU_PARENTKEY: `\”parentKey\”`,
MENU_ALLPATH: `\”allPath\”`,
MENU_PARENTPATH: `\”parentPath\”`,
MENU_LAYOUT: `\’layout\’`,
__IS_THEME__: `${process.env.REACT_APP_COLOR === \”1\”}`,
CUSTOMVARLESSDATA: `${JSON.stringify(customVarLessJson)}`
},

//注意还有这一种,可根据实际需求配置
envPrefix: [\’VITE\’, \’VUE\’], // 环境变量前缀,默认只会暴露VITE开头变量,定义后可暴露VUE开头变量
// 环境变量配置
define: {
\’process.env.VUE_APP_URL\’:JSON.stringify(env.VUE_APP_URL),
},

// ******插件配置******
plugins: [
vue(),
vueJsx(),
AutoImport({
imports: [
\’vue\’,
\’vue-router\’,
\’pinia\’,
{
axios: [
[\’default\’, \’axios\’] // import { default as axios } from \’axios\’,
]
}
],
dts: \’types/auto-import.d.ts\’ //生成全局引入的文件
}),
Components({
resolvers: [
AntDesignVueResolver({
importStyle: \’less\’ //修改antdv主题色
})
]
})
],

// ******开发服务器配置******
server: {
https: true, //(使用https)启用 TLS + HTTP/2。注意:当 server.proxy 选项 也被使用时,将会仅使用 TLS
host: true, // 监听所有地址
port: 8080, //指定开发服务器端口:默认3000
open: true, //启动时自动在浏览器中打开
cors: false, //为开发服务器配置 CORS
proxy: {
//配置自定义代理规则
// 字符串简写写法
\’/jpi\’: \’http://192.168.1.97:4567\’,
\’/api\’: {
target: \’http://192.168.1.97:108\’,
changeOrigin: true, //是否跨域
rewrite: path => path.replace(/^\\/api/, \’\’)
}
}
// hmr: {
// overlay: false
// }
},

// ******项目构建配置******
build: {
target: \’modules\’, //设置最终构建的浏览器兼容目标 //es2015(编译成es5) | modules
outDir: \’dist\’, // 构建得包名 默认:dist
assetsDir: \’assets\’, // 静态资源得存放路径文件名 assets
sourcemap: false, //构建后是否生成 source map 文件
brotliSize: false, // 启用/禁用 brotli 压缩大小报告。 禁用该功能可能会提高大型项目的构建性能
minify: \’esbuild\’, // 项目压缩 :boolean | \’terser\’ | \’esbuild\’
chunkSizeWarningLimit: 1000, //chunk 大小警告的限制(以 kbs 为单位)默认:500
cssTarget: \’chrome61\’ //防止 vite 将 rgba() 颜色转化为 #RGBA 十六进制符号的形式 (要兼容的场景是安卓微信中的 webview 时,它不支持 CSS 中的 #RGBA 十六进制颜色符号)
},

// ******resolver配置******
resolve: {
alias: {
// 别名配置
// 键必须以斜线开始和结束
\’@\’: resolve(__dirname, \’src\’),
components: resolve(__dirname, \’./src/components\’),
assets: resolve(__dirname, \’./src/assets\’),
\’#\’: resolve(__dirname, \’types\’),
build: resolve(__dirname, \’build\’)
},

//引入文件的后缀名称,可以省略。如果出现同名,按照数组加载的优先顺序
extensions: [\’.mjs\’, \’.js\’, \’.ts\’, \’.jsx\’, \’.tsx\’, \’.json\’, \’.vue\’],
},

// ******打印+debugger清除配置******
// 测试环境保留打印
esbuild: {
pure: VITE_DROP_CONSOLE ? [\’console.log\’, \’debugger\’] : []
// 自定义 JSX 配置
jsxFactory: \’h\’, //自定义的 JSX 工厂函数为 h,这在一些非 React 框架中可能会用到。
jsxFragment: \’Fragment\’, //指定了 JSX 的 Fragment 为 Fragment
jsxInject: `import React from \’react\’` //是否开启 JSX 转换

},

css: {
// 全局变量+全局引入less+配置antdv主题色
preprocessorOptions: {
less: {
javascriptEnabled: true,
// 全局变量使用:@primary-color
modifyVars: {
\’primary-color\’: \’#1890ff\’, // 全局主色
\’link-color\’: \’ #1890ff\’, // 链接色
\’success-color\’: \’ #52c41a\’, // 成功色
\’warning-color\’: \’ #faad14\’, // 警告色
\’error-color\’: \’ #f5222d\’, // 错误色
\’font-size-base\’: \’ 14px\’, // 主字号
\’heading-color\’: \’ rgba(0, 0, 0, 0.85)\’, // 标题色
\’text-color\’: \’ rgba(0, 0, 0, 0.65)\’, // 主文本色
\’text-color-secondary\’: \’ rgba(0, 0, 0, 0.45)\’, // 次文本色
\’disabled-color\’: \’ rgba(0, 0, 0, 0.25)\’, // 失效色
\’border-radius-base\’: \’ 2px\’, // 组件/浮层圆角
\’border-color-base\’: \’ #d9d9d9\’, // 边框色
\’box-shadow-base\’: \’ 0 2px 8px rgba(0, 0, 0, 0.15)\’ // 浮层阴影
}
}
}
}
}
})

没有用的自己可以去掉

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/oBoLuoMi1/article/details/131008428

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 vite.config.ts配置 https://www.zuozi.net/36692.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务