- Build Options
- build.target
- build.polyfillDynamicImport
- build.outDir
- build.assetsDir
- build.assetsInlineLimit
- build.cssCodeSplit
- build.sourcemap
- build.rollupOptions
- build.commonjsOptions
- build.lib
- build.manifest
- build.minify
- build.terserOptions
- build.cleanCssOptions
- build.write
- build.emptyOutDir
- build.brotliSize
- build.chunkSizeWarningLimit
- build.watch
Build Options
build.target
类型:
string
默认:
modules
相关内容:: 浏览器兼容性
设置最终构建的浏览器兼容目标。默认值是一个 Vite 特有的值,
'modules'
,这是指 支持原生 ES 模块的浏览器。另一个特殊值是 “esnext” —— 即指执行 minify 转换(作最小化压缩)并假设有原生动态导入支持。
转换过程将会由 esbuild 执行,并且此值应该是一个合法的 esbuild 目标选项。自定义目标也可以是一个 ES 版本(例如:
es2015
)、一个浏览器版本(例如:chrome58
)或是多个目标组成的一个数组。注意,如果代码包含不能被
esbuild
安全地编译的特性,那么构建将会失败。查看 esbuild 文档 获取更多细节。
build.polyfillDynamicImport
类型:
boolean
默认:
true
unlessbuild.target
is'esnext'
决定是否自动注入 对动态导入的 polyfill。
该 polyfill 将被自动注入进每个
index.html
入口的代理模块中。如果某次构建通过build.rollupOptions.input
选项配置成了使用非 HTML 的自定义入口,则有必要在你的自定义入口中手动引入此 polyfill:import 'vite/dynamic-import-polyfill'
注意:该 polyfill 不会 应用于 库模式。如果你需要支持不含原生动态导入功能的浏览器,可能要避免在你的库中使用它。
build.outDir
类型:
string
默认:
dist
指定输出路径(相对于 项目根目录).
build.assetsDir
类型:
string
默认:
assets
指定生成静态资源的存放路径(相对于
build.outDir
)。
build.assetsInlineLimit
类型:
number
默认:
4096
(4kb)小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求。设置为
0
可以完全禁用此项。
build.cssCodeSplit
类型:
boolean
默认:
true
启用/禁用 CSS 代码拆分。当启用时,在异步 chunk 中导入的 CSS 将内联到异步 chunk 本身,并在块加载时插入。
如果禁用,整个项目中的所有 CSS 将被提取到一个 CSS 文件中。
build.sourcemap
类型:
boolean | 'inline'
默认:
false
构建后是否生成 source map 文件。
build.rollupOptions
类型:
RollupOptions
自定义底层的 Rollup 打包配置。这与从 Rollup 配置文件导出的选项相同,并将与 Vite 的内部 Rollup 选项合并。查看 Rollup 选项文档 获取更多细节。
build.commonjsOptions
-
传递给 @rollup/plugin-commonjs 插件的选项。
build.lib
类型:
{ entry: string, name?: string, formats?: ('es' | 'cjs' | 'umd' | 'iife')[], fileName?: string }
相关内容: Library Mode
构建为库。entry 是必须的因为库不可以使用 HTML 作为入口。name 则是暴露的全局变量,并且在 formats 包含 ‘umd’ 或 ‘iife’ 时是必须的。默认 formats 是 [‘es’, ‘umd’]。
fileName
是输出的包文件名,默认fileName
是 package.json 的 name 选项。
build.manifest
类型:
boolean
默认:
false
相关内容: 后端集成
当设置为
true
,构建后将会生成manifest.json
文件,映射没有被 hash 的资源文件名和它们的 hash 版本。可以为一些服务器框架渲染时提供正确的资源引入链接。
build.minify
类型:
boolean | 'terser' | 'esbuild'
默认:
'terser'
设置为
false
可以禁用最小化混淆,或是用来指定使用哪种混淆器。默认为 Terser,虽然 Terser 相对较慢,但大多数情况下构建后的文件体积更小。ESbuild 最小化混淆更快但构建后的文件相对更大。
build.terserOptions
类型:
TerserOptions
传递给 Terser 的更多 minify 选项。
build.cleanCssOptions
类型:
CleanCSS.Options
传递给 clean-css 的构造器选项。
build.write
类型:
boolean
默认:
true
设置为
false
来禁用将构建后的文件写入磁盘。这常用于 编程式地调用build()
在写入磁盘之前,需要对构建后的文件进行进一步处理。
build.emptyOutDir
类型:
boolean
默认: 若
outDir
在root
目录下,则为true
默认情况下,若
outDir
在root
目录下,则 Vite 会在构建时清空该目录。若outDir
在根目录之外则会抛出一个警告避免意外删除掉重要的文件。可以设置该选项来关闭这个警告。该功能也可以通过命令行参数--emptyOutDir
来使用。
build.brotliSize
类型:
boolean
默认:
true
启用/禁用 brotli 压缩大小报告。压缩大型输出文件可能会很慢,因此禁用该功能可能会提高大型项目的构建性能。
build.chunkSizeWarningLimit
类型:
number
默认:
500
chunk 大小警告的限制(以 kbs 为单位)。
build.watch
类型:
WatcherOptions
| null
默认:
null
设置为
{}
则会启用 rollup 的监听器。在涉及只用在构建时的插件时和集成开发流程中很常用。