@@ -55,7 +55,7 @@ Vite 也直接支持 TS 配置文件。你可以在 `vite.config.ts` 中使用 `
5555如果配置文件需要基于(` serve ` 或 ` build ` )命令或者不同的 [ 模式] ( /guide/env-and-mode ) 来决定选项,则可以选择导出这样一个函数:
5656
5757``` js
58- export default ({ command, mode }) => {
58+ export default defineConfig ( ({ command, mode }) => {
5959 if (command === ' serve' ) {
6060 return {
6161 // serve 独有配置
@@ -65,15 +65,15 @@ export default ({ command, mode }) => {
6565 // build 独有配置
6666 }
6767 }
68- }
68+ })
6969```
7070
7171### 异步配置 {#async-config}
7272
7373如果配置需要调用一个异步函数,也可以转而导出一个异步函数:
7474
7575``` js
76- export default async ({ command, mode }) => {
76+ export default defineConfig ( async ({ command, mode }) => {
7777 const data = await asyncFunction ()
7878 return {
7979 // 构建模式所需的特有配置
@@ -242,15 +242,15 @@ export default async ({ command, mode }) => {
242242 指定传递给 CSS 预处理器的选项。例如:
243243
244244 ` ` ` js
245- export default {
245+ export default defineConfig( {
246246 css: {
247247 preprocessorOptions: {
248248 scss: {
249249 additionalData: ` $injectedColor: orange;`
250250 }
251251 }
252252 }
253- }
253+ })
254254 ` ` `
255255
256256### json .namedExports {#json- namedexports}
@@ -276,24 +276,24 @@ export default async ({ command, mode }) => {
276276 ` ESBuildOptions` 继承自 [ESbuild 转换选项](https: // esbuild.github.io/api/#transform-api)。最常见的用例是自定义 JSX:
277277
278278 ` ` ` js
279- export default {
279+ export default defineConfig( {
280280 esbuild: {
281281 jsxFactory: 'h',
282282 jsxFragment: 'Fragment'
283283 }
284- }
284+ })
285285 ` ` `
286286
287287 默认情况下,ESbuild 会被应用在 ` ts` 、` jsx` 、` tsx` 文件。你可以通过 ` esbuild.include` 和 ` esbuild.exclude` 对要处理的文件类型进行配置,这两个配置的类型应为 ` string | RegExp | (string | RegExp)[]` 。
288288
289289 此外,你还可以通过 ` esbuild.jsxInject` 来自动为每一个被 ESbuild 转换的文件注入 JSX helper。
290290
291291 ` ` ` js
292- export default {
292+ export default defineConfig( {
293293 esbuild: {
294294 jsxInject: ` import React from ' react' `
295295 }
296- }
296+ })
297297 ` ` `
298298
299299 设置为 ` false` 来禁用 ESbuild 转换。
@@ -374,11 +374,11 @@ export default async ({ command, mode }) => {
374374 ** 示例:**
375375
376376 ` ` ` js
377- export default {
377+ export default defineConfig( {
378378 server: {
379379 open: '/docs/index.html'
380380 }
381- }
381+ })
382382 ` ` `
383383
384384### server .proxy {#server- proxy}
@@ -392,7 +392,7 @@ export default async ({ command, mode }) => {
392392 ** 示例:**
393393
394394 ` ` ` js
395- export default {
395+ export default defineConfig( {
396396 server: {
397397 proxy: {
398398 // 字符串简写写法
@@ -419,7 +419,7 @@ export default async ({ command, mode }) => {
419419 }
420420 }
421421 }
422- }
422+ })
423423 ` ` `
424424
425425### server .cors {#server- cors}
@@ -514,14 +514,14 @@ createServer()
514514 接受一个路径作为自定义工作区的 root 目录。可以是绝对路径或是相对于 [项目 root 目录](/ guide/ #index- html- and- project- root) 的相对路径。示例如下:
515515
516516 ` ` ` js
517- export default {
517+ export default defineConfig( {
518518 server: {
519519 fs: {
520520 // 可以为项目根目录的上一级提供服务
521521 allow: ['..']
522522 }
523523 }
524- }
524+ })
525525 ` ` `
526526
527527## 构建选项 {#build- options}
@@ -543,23 +543,6 @@ createServer()
543543
544544 注意:如果代码包含不能被 ` esbuild` 安全地编译的特性,那么构建将会失败。查看 [esbuild 文档](https: // esbuild.github.io/content-types/#javascript) 获取更多细节。
545545
546- ### build.polyfillDynamicImport {#build-polyfilldynamicimport}
547-
548- - ** Type:** ` boolean `
549- - ** Default:** ` false `
550-
551- 设置是否自动注入 [ 动态导入 polyfill] ( https://github.com/GoogleChromeLabs/dynamic-import-polyfill ) 。
552-
553- 如果设置为 ` true ` ,该 polyfill 会被自动注入到每一个 ` index.html ` 入口的代理模块中。若将本次构建使用 ` build.rollupOptions.input ` 配置为使用非 html 的自定义入口,则需要在你的自定义的入口手动导入该 polyfill:
554-
555- ``` js
556- import ' vite/dynamic-import-polyfill'
557- ```
558-
559- 当使用 [ ` @vitejs/plugin-legacy ` ] ( https://github.com/vitejs/vite/tree/main/packages/plugin-legacy ) 时,该插件会将本选项自动配置为 ` true ` 。
560-
561- 注意:本 polyfill ** 无法** 应用到 [ 库模式] ( /guide/build#library-mode ) 中。如果你需要支持没有原生动态导入功能的浏览器,你可能需要避免在你的库中使用本功能。
562-
563546### build .outDir {#build- outdir}
564547
565548- ** 类型:** ` string`
@@ -599,7 +582,7 @@ createServer()
599582- ** 类型:** ` boolean | 'inline'` | ' hidden' `
600583- **默认:** ` false `
601584
602- 构建后是否生成 source map 文件。
585+ 构建后是否生成 source map 文件。如果为 ` true ` ,将会创建一个独立的 source map 文件。如果为 ` ' inline ' ` ,source map 将作为一个 data URI 附加在输出文件中。 ` ' hidden ' ` 的工作原理与 ` ' true ' ` 相似,只是 bundle 文件中相应的注释将不被保留。
603586
604587### build.rollupOptions {#build-rollupoptions}
605588
@@ -621,10 +604,10 @@ createServer()
621604
622605### build.lib {#build-lib}
623606
624- - ** 类型:** ` { entry: string, name?: string, formats?: ('es' | 'cjs' | 'umd' | 'iife')[], fileName?: string } `
607+ - **类型:** ` { entry: string, name?: string, formats?: (' es' | ' cjs' | ' umd' | ' iife' )[], fileName?: string | (( format : ModuleFormat ) => string) }`
625608- **相关内容:** [库模式](/guide/build#library-mode)
626609
627- 构建为库。` entry ` 是必须的因为库不能使用 HTML 作为入口。` name ` 则是暴露的全局变量,在 ` formats ` 包含 ` 'umd' ` 或 ` 'iife' ` 时是必须的。默认 ` formats ` 是 ` ['es', 'umd'] ` 。` fileName ` 是输出的包文件名,默认 ` fileName ` 是 ` package.json ` 的 ` name ` 选项。
610+ 构建为库。` entry` 是必须的因为库不能使用 HTML 作为入口。` name` 则是暴露的全局变量,在 ` formats` 包含 ` ' umd' ` 或 ` ' iife' ` 时是必须的。默认 ` formats` 是 ` [' es' , ' umd' ]` 。` fileName` 是输出的包文件名,默认 ` fileName` 是 ` package .json ` 的 ` name` 选项,同时,它还可以被定义为参数为 ` format ` 的函数 。
628611
629612### build.manifest {#build-manifest}
630613
0 commit comments