Build Options

build.target

  • 类型: string

  • 默认: modules

  • 相关内容:: 浏览器兼容性

    设置最终构建的浏览器兼容目标。默认值是一个 Vite 特有的值,'modules',这是指 支持原生 ES 模块的浏览器

    另一个特殊值是 “esnext” —— 即指执行 minify 转换(作最小化压缩)并假设有原生动态导入支持。

    转换过程将会由 esbuild 执行,并且此值应该是一个合法的 esbuild 目标选项。自定义目标也可以是一个 ES 版本(例如:es2015)、一个浏览器版本(例如:chrome58)或是多个目标组成的一个数组。

    注意,如果代码包含不能被 esbuild 安全地编译的特性,那么构建将会失败。查看 esbuild 文档 获取更多细节。

build.polyfillDynamicImport

  • 类型: boolean

  • 默认: true unless build.target is 'esnext'

    决定是否自动注入 对动态导入的 polyfill

    该 polyfill 将被自动注入进每个 index.html 入口的代理模块中。如果某次构建通过 build.rollupOptions.input 选项配置成了使用非 HTML 的自定义入口,则有必要在你的自定义入口中手动引入此 polyfill:

    1. 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

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

  • 默认:outDirroot 目录下,则为 true

    默认情况下,若 outDirroot 目录下,则 Vite 会在构建时清空该目录。若 outDir 在根目录之外则会抛出一个警告避免意外删除掉重要的文件。可以设置该选项来关闭这个警告。该功能也可以通过命令行参数 --emptyOutDir 来使用。

build.brotliSize

  • 类型: boolean

  • 默认: true

    启用/禁用 brotli 压缩大小报告。压缩大型输出文件可能会很慢,因此禁用该功能可能会提高大型项目的构建性能。

build.chunkSizeWarningLimit

  • 类型: number

  • 默认: 500

    chunk 大小警告的限制(以 kbs 为单位)。

build.watch

  • 类型: WatcherOptions| null

  • 默认: null

    设置为 {} 则会启用 rollup 的监听器。在涉及只用在构建时的插件时和集成开发流程中很常用。