导图一览
配置一览
// vite.config.js
import { defineConfig } from 'vite';
import path from "path";
// import { ViteAliases } from 'vite-aliases'
export default defineConfig({
// 指定项目根目录(index.html 文件所在的位置)。可以是一个绝对路径,或者一个相对于该配置文件本身的相对路径。
root: process.cwd(), // 默认:process.cwd();
// 开发或生产环境服务的公共基础路径。
// 合法的值包括以下几种:1. 绝对 URL 路径名,例如 /foo/; 2.完整的 URL,例如 https://foo.com/; 3.空字符串或 ./(用于嵌入形式的开发);
base: '/', // 默认:'/';
mode: 'development', // 默认:'development' 用于开发,'production' 用于构建;在配置中指明将会把 serve 和 build 时的模式 都 覆盖掉。也可以通过命令行 --mode 选项来重写。
// 作为静态资源服务的文件夹;
// 开发期间在 '/' 提供,构建期间会将整个目录内的文件原封不动(不会进行转换)的复制到 outDir 的根目录;
// 如:要使用 public/icon.png ,在项目源码中直接 '/icon.png' 这样使用即可;
// public 中的文件,不应该在 js 文件使用;如 import, require 使用等;因为 public 中的文件是作为静态使用的;不应该经过编译构建处理;
// 关闭此项功能 设置:publicDir: false; 即可;
publicDir: 'public', // 默认:'public'; 该值可以是文件系统的绝对路径,也可以是相对于项目根目录的相对路径。
// 存储缓存文件的目录。
// 想要重新生成缓存的话, 可使用 --force 命令;如: $ vite --force, $ vite preview --force;
// 此选项的值可以是文件的绝对路径,也可以是以项目根目录为基准的相对路径;
// 没有检测到 package.json 时, 默认为: .vite;
cacheDir: 'node_modules/.vite', // 默认:"node_modules/.vite";
// 定义全局常量替换方式。
// 其中每项在开发环境下会被定义在全局,如:window.<define.key>;
// 而在构建时被静态替换。
define: {
// __KEY__: value // value 如果是字符串,需要JSON.stringify(value)
},
envDir: process.cwd(), // 默认:root 指定的路径; 用于加载 .env 文件的目录。可以是一个绝对路径,也可以是相对于项目根的路径。
envPrefix: ['VITE_', 'APP_', 'ENV_'], // 默认:VITE_; 以 envPrefix 开头的环境变量会通过 import.meta.env 暴露在你的客户端源码中。
// 对 css 的行为进行配置
css: {
// 配置 css modules 的行为;
// modules 的配置最终会给到 postcss-modules(https://github.com/css-modules/postcss-modules), 进行处理; 可参考 postcss-modules 的配置;
modules: {
// scopeBehaviour:配置当前的模块化行为是模块化还是全局化 (有hash就是开启了模块化的一个标志, 因为他可以保证产生不同的hash值来控制我们的样式类名不被覆盖)
scopeBehaviour: 'local', // 默认:local; 可选: global | local;
// globalModulePaths: 为全局模块定义路径。它是一个用正则表达式定义路径的数组;代表你不想参与到 css模块化的路径;
// 如下:
// globalModulePaths: ['./global/global.module.less', './xxx.module.css', './yyy'] 定义文件路径 或 文件夹路径;
// globalModulePaths: [/.\/global\/style\//], // 使用正则表达式
globalModulePaths: [/.\/global\/style\//],
// generateScopedName: 通过插值字符串的形式,配置参考:interpolatename(https://github.com/webpack/loader-utils#interpolatename)
// generateScopedName: "[name]__[local]___[hash:base64:5]",
// generateScopeName: 通过 callback 函数的形式自定义生成的类名;提供的参数:name(类名)、filename(文件名)、css(css 块)
// generateScopedName: (name, filename, css) => {
// console.log('name -> ', name)
// console.log('filename -> ', filename)
// console.log('css -> ', css)
// const path = require("path");
// const i = css.indexOf("." + name);
// const line = css.substr(0, i).split(/[\r\n]/).length;
// const file = path.basename(filename, ".css");
// return "_" + file + "_" + line + "_" + name;
// },
// 生成 hash 会根据你的类名 + 一些其他的字符串(文件名 + 它内部随机生成一个字符串)去进行生成, 如果你想要你生成 hash 更加的独特一点, 你可以配置 hashPrefix, 你配置的这个字符串会参与到最终的 hash 生成,
// (hash: 只要你的字符串有一个字不一样, 那么生成的 hash 就完全不一样, 但是只要你的字符串完全一样, 生成的 hash 就会一样)
hashPrefix: 'prefix', // 默认:'prefix';
// localsConvention: 设置导出的样式 classnames 的 json 对象的 key 的展示形式;(驼峰 | 仅驼峰 | 中划线 | 仅中划线);
// 或者根据 originalClassName(原始类名)、generatedClassName(生成的唯一类名)、inputFile(输入类名的文件) 参数自定义类名;
localsConvention: 'camelCaseOnly', // 默认:null; 可选:'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashesOnly';
// localsConvention: (originalClassName, generatedClassName, inputFile) => {
// console.log('originalClassName -> ', originalClassName)
// console.log('generatedClassName -> ', generatedClassName)
// console.log('inputFile -> ', inputFile)
// return 'test'
// },
},
// preprocessorOptions: 指定传递给 CSS 预处理器的选项; key + config;
// key 代表预处理器的名; config: options 选项配置; 如下, less 预处理配置:
// 所有预处理器选项还支持 additionalData 选项,可以用于为每个样式内容注入额外代码。
preprocessorOptions: {
// 整个的配置对象都会最终给到 less的执行参数(全局参数)中去,相当于 webpack 中给 less-loader 传递配置参数;
less: {
math: 'always', // 较少进行数学计算,兼容更多数学计算的写法;
globalVars: { // 配置 less 的全局变量
mainColor: 'yellow'
}
}
},
// 在开发过程中是否启用 css 的 sourcemap;
devSourcemap: true,
// postcss: 配置postcss相关;使用此属性,postcss.config.js 文件会失效;所以只能二选一;
// postcss: {},
},
resolve: {
// 给路径定义别名
// 当使用文件系统路径的别名时,请始终使用绝对路径。相对路径的别名值会原封不动地被使用,因此无法被正常解析。
// 值将会被传递到 @rollup/plugin-alias 作为 entries 的选项。也可以是一个对象,或一个 { find, replacement, customResolver } 的数组。
// [Note]: 重命名的路径不应该以 ‘/’ 结尾
alias: {
'@': path.resolve(__dirname, './src'),
'@assets': path.resolve(__dirname, './src/assets'),
},
// 将此 dedupe 设置中的库名,经过检索,只取一个版本的库(最外层的根库);
dedupe: [], // 默认:[];
// 解决程序包中 情景导出 时的其他允许条件。
// 默认允许的情景是:import,module,browser,default 和基于当前情景为 production/development。
// 当然也可以自定义;
conditions: [],
// package.json 中,在解析包的入口点时尝试的字段列表。注意:这比从 exports 字段解析的情景导出优先级低:如果一个入口点从 exports 成功解析,resolve.mainFields 将被忽略。
mainFields: ['module', 'jsnext:main', 'jsnext'], // 默认:['module', 'jsnext:main', 'jsnext'];
// 是否启用对 browser 字段的解析。
// 在未来,resolve.mainFields 的默认值会变成 ['browser', 'module', 'jsnext:main', 'jsnext'] 而这个选项将被移除。
browserField: true, // 默认: true;
// 导入时想要省略的扩展名的 后缀列表。
// [NOTE]: 不建议忽略自定义的导入类型的扩展名(如: .vue 文件),因为它会影响 IDE 和类型支持。
extensions: ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json'], // 默认:['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json'];
// 启用此选项会使 Vite 通过原始文件路径(即不跟随符号链接的路径)而不是真正的文件路径(即跟随符号链接后的路径)确定文件身份。
// preserveSymlinks: false 时, import myTestModule from '/@fs/Users/xxx/xxx/.../my-test-module/index.js'; // 符号链接后的路径
// preserveSymlinks: true 时, import myTestModule from '/node_modules/.vite/deps/my-test-module.js?v=b98ad576'; // 使用原始文件路径;
preserveSymlinks: false, // 默认: false;
},
// json 文件的处理
json: {
// 是否支持从 .json 文件中进行按名导入。
namedExports: true, // 默认:true;
// 若设置为 true,导入的 JSON 会被转换为 export default JSON.parse("..."),这样会比转译成对象字面量性能更好,尤其是当 JSON 文件较大的时候。
// 开启此项,则会禁用按名导入。
stringify: false, // 默认:false;
},
// 控制 esbuild 的转换
// esbuild: {},
esbuild: false,
// 指定额外的 picomatch模式 作为静态资源处理
// assetsInclude: ['**/*.gltf'],
assetsInclude: '', // 类型: string | RegExp | (string | RegExp)[]
// 调整控制台输出的级别,默认为 'info'。
logLevel: 'info', // 默认:'info'; 类型: 'info' | 'warn' | 'error' | 'silent'
// 自定义控制台 logger 记录
// customLogger: {},
// 触发终端输出时,是否清空终端上的信息
clearScreen: false, // 默认:false; 类型: Boolean
// 设置应用类型
appType: 'spa', // 默认: 'spa'; 类型: 'spa' | 'mpa' | 'custom'
// 需要用到的插件数组。
// 官方插件:https://cn.vitejs.dev/plugins/
// 社区插件:https://github.com/vitejs/awesome-vite#plugins
plugins: [
// ViteAliases() // 自动根据项目目录进行 重命名操作的 插件;可替换 resolve.alias 的使用;
],
// 开发服务器配置
server: {
// 指定服务器应该监听哪个 IP 地址, 将此设置为 0.0.0.0 或者 true 将监听所有地址,包括局域网和公网地址。
host: 'localhost', // 默认:'localhost'; 类型:string | boolean;
// 指定开发服务器端口;如果端口被占用,vite 会自动尝试下一个可用端口;
port: 5173, // 默认:5173; 类型: number
// 当端口被占用时,是否直接退出;
strictPort: false, // 默认:false; 类型: boolean;
// 启用 TLS + HTTP/2; 还可以借用插件 @vitejs/plugin-basic-ssl 或 vite-plugin-mkcert(推荐)做 https 的使用;
https: true, // 默认: false; 类型:boolean | https.ServerOptions
// 开发服务器启动时,自动在浏览器中打开应用程序;
open: true, // 默认:true; 类型:boolean | string
// open: '/docs/index.html',
// 为开发服务器配置自定义代理规则。期望接收一个 { key: options } 对象。
// 类型:Record<string, string | ProxyOptions>
proxy: {
// for example:
// '/api': {
// target: 'http://jsonplaceholder.typicode.com',
// changeOrigin: true,
// rewrite: (path) => path.replace(/^\/api/, ''),
// },
},
// 为开发服务器配置 CORS。CorsOptions 参考 https://github.com/expressjs/cors#configuration-options
cors: true, // 类型:boolean | CorsOptions
// 指定服务器响应的 header。
// 类型:OutgoingHttpHeaders
headers: {},
// 禁用或配置 HMR 连接(用于 HMR websocket 必须使用不同的 http 服务器地址的情况)。
// 类型:boolean
// 或类型: {
// protocol?: string,
// host?: string,
// port?: number,
// path?: string,
// timeout?: number,
// overlay?: boolean,
// clientPort?: number,
// server?: Server
// },
hmr: true,
// 传递给 chokidar 的文件系统监听器选项。
// github choidar: https://github.com/paulmillr/chokidar#api
// Vite 服务器默认会忽略对 .git/ 和 node_modules/ 目录的监听。
// 类型:object
watch: {},
// 以中间件模式创建 Vite 服务器。(不含 HTTP 服务器)
// 类型:'ssr' | 'html';
// 当前:Setting server.middlewareMode to 'html' is deprecated, set server.middlewareMode to `true` instead
// middlewareMode: true, // 默认: true;
// 在 HTTP 请求中预留此文件夹,用于代理 Vite 作为子文件夹时使用。应该以 / 字符开始。
// vite 作为服务器,被代理请求时使用
base: '/x',
fs: {
// 限制为工作区 root 路径以外的文件的访问。
// 类型: boolean
strict: true, // 默认:true
// 限制哪些文件可以通过 /@fs/ 路径提供服务。当 server.fs.strict 设置为 true 时,访问这个目录列表外的文件将会返回 403 结果。
// 类型: string[]
allow: [],
// 用于限制 Vite 开发服务器提供敏感文件的黑名单。
// 类型: string[]
deny: ['.env', '.env.*', '*.{pem,crt}'],
},
// 用于定义开发调试阶段生成资源的 origin。
origin: 'undefined', // 默认: undefined;
// 是否忽略服务器 sourcemap 中的源文件,用于填充 x_google_ignoreList source map 扩展。
// 类型: false | (sourcePath: string, sourcemapPath: string) => boolean
sourcemapIgnoreList: (sourcePath) => sourcePath.includes('node_modules'), // 默认: (sourcePath) => sourcePath.includes('node_modules')
},
// 构建选项
build: {
// 设置最终构建的浏览器兼容目标
target: 'modules', // 默认: 'modules'; 类型: string | string[]
// 默认情况下,一个 模块预加载 polyfill 会被自动注入。
// 类型:boolean | { polyfill?: boolean, resolveDependencies?: ResolveModulePreloadDependenciesFn }
// 默认: { polyfill: true }
modulePreload: { polyfill: true },
// 已经废弃,使用 build.modulePreload.polyfill 替代
// polyfillModulePreload: true, // 默认:true; 类型: boolean;
// 指定输出路径
outDir: 'dist', // 默认: 'dist'; 类型:string;
// 指定生成静态资源的存放路径(相对于 build.outDir)。在 库模式 下不能使用;
assetsDir: 'assets', // 默认:'assets'; 类型:string;
// 小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求。设置为 0 可以完全禁用此项。
assetsInlineLimit: 14096, // 默认:4096;类型:number;
// 启用/禁用 CSS 代码拆分。当启用时,在异步 chunk 中导入的 CSS 将内联到异步 chunk 本身,并在其被加载时插入。
cssCodeSplit: true, // 默认:true; 类型: boolean;
// 此选项允许用户为 CSS 的压缩设置一个不同的浏览器 target,此处的 target 并非是用于 JavaScript 转写目标。
// 应只在针对非主流浏览器时使用。
cssTarget: ['es2020', 'edge88', 'firefox78', 'chrome87', 'safari14'], // 默认:与 build.target 一致;类型:string | string[];
// 此选项允许用户覆盖 CSS 最小化压缩的配置,而不是使用默认的 build.minify,这样你就可以单独配置 JS 和 CSS 的最小化压缩方式。Vite 使用 esbuild 来最小化 CSS。
cssMinify: 'esbuild', // 默认:与 build.minify 一致; 类型:boolean;
// 构建后是否生成 source map 文件
sourcemap: false, // 默认:false; 类型:boolean | 'inline' | 'hidden';
// 自定义底层的 Rollup 打包配置。
// 这与从 Rollup 配置文件导出的选项相同,并将与 Vite 的内部 Rollup 选项合并。
// 参考:https://cn.rollupjs.org/configuration-options/
// 参考:https://rollupjs.org/configuration-options/
rollupOptions: {}, // 类型: RollupOptions;
// 传递给 @rollup/plugin-commonjs 插件的选项。
// @rollup/plugin-commonjs 插件: 一个Rollup插件,用于将CommonJS模块转换为ES6,这样它们就可以包含在Rollup包中
// 参考:https://github.com/rollup/plugins/tree/master/packages/commonjs
commonjsOptions: {}, // 类型:RollupCommonJSOptions;
// 传递给 @rollup/plugin-dynamic-import-vars 插件的选项。
// 插件 @rollup/plugin-dynamic-import-vars : 一个rollup插件,支持rollup中 在动态导入中使用变量。
// 参考:https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars
dynamicImportVarsOptions: {}, // 类型:RollupDynamicImportVarsOptions
// 构建为库
// 类型:{
// entry: string | string[] | { [entryAlias: string]: string },
// name?: string,
// formats?: ('es' | 'cjs' | 'umd' | 'iife')[],
// fileName?: string | ((format: ModuleFormat, entryName: string) => string)
// }
// lib: {
// entry: './main4.js',
// name: 'MyLib',
// formats: ['es', 'umd'],
// fileName: 'my.lib'
// },
// 当该值为 boolean 值时,设置为 true,构建后将会生成 manifest.json 文件,包含了没有被 hash 过的资源文件名和 hash 后版本的映射。可以为一些服务器框架渲染时提供正确的资源引入链接。
// 当该值为一个字符串时,它将作为 manifest 文件的名字。
manifest: false, // 默认:false; 类型: boolean | string;
// 生成面向 SSR 的构建。
// 1. 该值为字符串时,用于指定 SSR 的入口;
// 2. 该值为 boolean 值时,如果为 true, 需要通过设置 rollupOptions.input 来指定 SSR 的入口。
ssr: false, // 默认:false; 类型: boolean | string;
// 指定使用哪种混淆器
// 类型:boolean | 'terser' | 'esbuild'
minify: 'esbuild', // 默认:'esbuild';
// 传递给 Terser 的更多 minify 选项。如果 minify: 'terser' 时,需配置此项,否则不需要
// 参考 github: https://github.com/terser/terser
// 参考 官网: https://terser.org/
// terserOptions: {}
// 设置为 false 来禁用将构建后的文件写入磁盘。
// 这常用于 编程式地调用 build() 在写入磁盘之前,需要对构建后的文件进行进一步处理。
write: true, // 默认: true; 类型: boolean;
// 设置 Vite 在构建时是否清空该目录;
// 默认情况下,若 outDir 在 root 目录下,则 Vite 会在构建时清空该目录。若 outDir 在根目录之外则会抛出一个警告避免意外删除掉重要的文件。可以设置该选项来关闭这个警告。
// 类型:boolean
emptyOutDir: true, // 默认:若 outDir 在 root 目录下,则为 true;
// 默认情况下,Vite 会在构建阶段将 publicDir 目录中的所有文件复制到 outDir 目录中。可以通过设置该选项为 false 来禁用该行为。
copyPublicDir: true, // 默认:true; 类型:boolean;
// 启用/禁用 gzip 压缩大小报告。
reportCompressedSize: true, // 默认:true; 类型:boolean;
// 规定触发警告的 chunk 大小(以 kb 为单位)。
// 它将与未压缩的 chunk 大小进行比较,因为 JavaScript 大小本身与执行时间相关。
chunkSizeWarningLimit: 500, // 默认: 500; 类型: number;
// 构建监听设置,当项目发生修改变化时,会根据 watch 的配置,自动进行重新构建;
// 设置为 {} 则会启用 rollup 的监听器。对于只在构建阶段或者集成流程使用的插件很常用。
// 参考:https://rollupjs.org/configuration-options/#watch
watch: null, // 默认: null; 类型: WatcherOptions | null;
},
// 预览选项
preview: {
// 为开发服务器指定 ip 地址。 设置为 0.0.0.0 或 true 会监听所有地址,包括局域网和公共地址。
host: 'localhost', // 默认:server.host; 类型:string | boolean;
// 指定开发服务器端口。注意,如果设置的端口已被使用,Vite 将自动尝试下一个可用端口,所以这可能不是最终监听的服务器端口。
port: 4173, // 默认: 4173; 类型: number;
// 设置为 true 时,如果端口已被使用,则直接退出,而不会再进行后续端口的尝试。
strictPort: false, // 默认:server.strictPort; 类型:boolean;
// 启用 TLS + HTTP/2。注意,只有在与 server.proxy 选项 同时使用时,才会降级为 TLS。
// 该值也可以传递给 https.createServer() 的 options 对象。
https: false, // 默认: server.https; 类型:boolean | https.ServerOptions;
// 开发服务器启动时,自动在浏览器中打开应用程序。
// 当该值为字符串时,它将被用作 URL 的路径名。
// 如果你想在你喜欢的某个浏览器打开该开发服务器,你可以设置环境变量 process.env.BROWSER (例如 firefox)。
// 欲了解更多细节,请参阅 open 包的源码。
// BROWSER 和 BROWSER_ARGS 是两个特殊的环境变量,你可以在 .env 文件中设置它们用以配置本选项。查看 open 这个包 了解更多详情。
// open 这个包源码: https://github.com/sindresorhus/open#app
open: true, // 默认:server.open; 类型:boolean | string;
// 为开发服务器配置自定义代理规则。
// 参考: https://github.com/http-party/node-http-proxy
// 参考: https://github.com/http-party/node-http-proxy#options
proxy: {}, // 默认:server.proxy; 类型: Record<string, string | ProxyOptions>;
// 为开发服务器配置 CORS。此功能默认启用并支持任何来源。
// 可传递一个 options 对象 来进行配置,或者传递 false 来禁用此行为。
// 参考: https://github.com/expressjs/cors#configuration-options
cors: true, // 默认:server.cors; 类型:boolean | CorsOptions;
// 指明服务器返回的响应头。
headers: {}, // 类型: OutgoingHttpHeaders;
},
// 优化选项
optimizeDeps: {
// 默认情况下,Vite 会抓取你的 index.html 来检测需要预构建的依赖项(忽略了node_modules、build.outDir、__tests__ 和 coverage)。
// 如果指定了 build.rollupOptions.input,Vite 将转而去抓取这些入口点。
// 当显式声明了 optimizeDeps.entries 时默认只有 node_modules 和 build.outDir 文件夹会被忽略。如果还需忽略其他文件夹,你可以在模式列表中使用以 ! 为前缀的、用来匹配忽略项的模式。
// 配置参考:https://github.com/mrmlnc/fast-glob
entries: 'index.html', // 默认:index.html; 类型:string | string[],
// 在预构建中强制排除的依赖项。
// 如使用 import lodash-es 时,设置 exclude: ['lodash-es'], 那么 lodash-es 就不会参加依赖预构建;网络请求针对 lodash-es 就会发出好多的请求;
exclude: [], // 默认:[]; 类型:string[];
// 默认情况下,不在 node_modules 中的 linked package 不会被预构建。
// 使用此选项可强制预构建链接的包。
include: [], // 默认:[]; 类型: string[];
// 在依赖扫描和优化过程中传递给 esbuild 的选项。
// 忽略了 external 选项,请使用 Vite 的 optimizeDeps.exclude 选项
// plugins 与 Vite 的 dep 插件合并
// 参考:https://esbuild.github.io/api/
esbuildOptions: {}, // 类型:EsbuildBuildOptions;
// 设置为 true 时, 可以强制依赖预构建,而忽略之前已经缓存过的、已经优化过的依赖。
// 表现就是引用 lodash-es 时,每次启动开发服务器时,生成预构建包 lodash-es.js?v=6b6532a5 的 v 值都是不同的
// 相反,设置为 false 时,每次启动开发服务器时,生成预构建包 lodash-es.js?v=6b6532a5 的 v 值都是相同的;证明每次都是用的同一份缓存;
force: false, // 默认: false; 类型:boolean;
// 禁用依赖优化,值为 true 将在构建和开发期间均禁用优化器。
// 传 'build' 或 'dev' 将仅在其中一种模式下禁用优化器。
// 默认情况下,仅在开发阶段启用依赖优化。
disabled: 'dev', // 默认:'build'; 类型: boolean | 'build' | 'dev'
// 依赖项的不同组合可能会导致其中一些以不同的方式进行预绑定。将这些包添加到 needsInterop 中可以通过避免整个页面的重新加载来加速冷启动。
// 如果您的一个依赖项是这种情况,您将收到一个警告,建议将包名添加到配置中的此数组中。
// 主要用于在 Vite 进行依赖性导入分析,这是由 importAnalysisPlugin 插件中的 transformCjsImport 函数负责的,它会对需要预编译且为 CommonJS 的依赖导入代码进行重写。
needsInterop: [], // 默认:[]; 类型: string[];
},
// ssr 选项
ssr: {
// 列出的是要为 SSR 强制外部化的依赖
external: [], // 类型:string[];
// 列出的是 防止被 SSR 外部化的依赖项。如果设为 true, 将没有依赖被外部化;
noExternal: true, // 类型:string | RegExP | (string | RegExp)[] | true;
// SSR 服务器的构建目标
target: 'node', // 默认: 'node'; 类型:'node' | 'webworker';
// SSR 服务器的构建语法格式。
format: 'esm', // 默认:'node'; 类型:'node' | 'cjs';
},
// Worker 选项
worker: {
// worker 打包时的输出类型。
format: 'iife', // 默认:'iife'; 类型:'es' | 'iife';
// 应用于 worker 打包的 Vite 插件。
// 注意 config.plugins 仅会在开发(dev)阶段应用于 worker,若要配置在构建(build)阶段应用于 worker 的插件则应该在本选项这里配置。
plugins: [], // 类型:(Plugin | Plugin[])[];
// 用于打包 worker 的 Rollup 配置项。
// 配置参考:https://rollupjs.org/configuration-options/
rollupOptions: {}, // 类型: RollupOptions;
}
})