Skip to content

Commit dfd81bd

Browse files
authored
Merge pull request #1693 from vitejs/main
m2d
2 parents c8f2ce0 + 3324088 commit dfd81bd

16 files changed

Lines changed: 38 additions & 38 deletions

guide/api-environment-frameworks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ if (isRunnableDevEnvironment(server.environments.ssr)) {
4747
只有在第一次使用时,`runner` 才会被加载。请注意,当通过调用 `process.setSourceMapsEnabled` 或在不支持的情况下重写 `Error.prepareStackTrace` 创建 `runner` 时,Vite 会启用源映射支持。
4848
:::
4949

50-
假设已按照[SSR 设置指南](/guide/ssr#setting-up-the-dev-server)中描述的方式配置了 Vite 服务器的中间件模式,现在我们使用环境 API 实现 SSR 中间件。请注意,它不必命名为 `ssr`,因此在本示例中我们将它命名为 `server`。错误处理已省略。
50+
假设已按照 [SSR 设置指南](/guide/ssr#setting-up-the-dev-server) 中描述的方式配置了 Vite 服务器的中间件模式,现在我们使用环境 API 实现 SSR 中间件。请注意,它不必命名为 `ssr`,因此在本示例中我们将它命名为 `server`。错误处理已省略。
5151

5252
```js
5353
import fs from 'node:fs'

guide/api-environment-plugins.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ export default defineConfig({
229229
230230
## 应用程序-插件通信 {#application-plugin-communication}
231231
232-
`environment.hot` 允许插件与给定环境的应用程序端代码进行通信。这相当于[客户端-服务器通信功能](/guide/api-plugin#client-server-communication),但支持除客户端环境以外的其他环境。
232+
`environment.hot` 允许插件与给定环境的应用程序端代码进行通信。这相当于 [客户端-服务器通信功能](/guide/api-plugin#client-server-communication),但支持除客户端环境以外的其他环境。
233233
234234
:::warning Note
235235

guide/api-environment-runtimes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ function createWorkerEnvironment(name, config, context) {
371371
}
372372

373373
const workerHotChannel = {
374-
// Worker threads post messages are not exposed over the network, skip server.fs checks
374+
// Worker 线程发送的消息不会暴露到网络,因此跳过 server.fs 检查
375375
skipFsCheck: true,
376376
send: (data) => worker.postMessage(data),
377377
on: (event, handler) => {

guide/api-environment.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ Vite 6 正式引入了“环境”的概念。在 Vite 5 之前,系统中存
2323

2424
当我们移动到一个典型的服务器端渲染(SSR)应用程序时,我们将有两个环境:
2525

26-
- `client`: 在浏览器中运行应用程序。
27-
- `ssr`: 在 node(或其他服务器运行时)中运行应用程序,渲染页面后再发送到浏览器。
26+
- `client`在浏览器中运行应用程序。
27+
- `ssr`在 node(或其他服务器运行时)中运行应用程序,渲染页面后再发送到浏览器。
2828

2929
在开发过程中,Vite 会在与 Vite 开发服务器相同的 Node 进程中执行服务器代码,从而接近生产环境。不过,服务器也有可能在其他 JS 运行时中运行,如 [Cloudflare 的 workerd](https://github.com/cloudflare/workerd),它们有不同的限制。现代应用程序也可能在两个以上的环境中运行,例如浏览器、节点服务器和边缘服务器。Vite 5 无法正确表示这些环境。
3030

@@ -47,7 +47,7 @@ export default defineConfig({
4747
})
4848
```
4949

50-
这一点很重要,因为我们希望 Vite 保持平易近人,避免在需要时才公开新概念
50+
这一点很重要,因为我们希望保持 Vite 的易用性,并在需要时才引入新概念
5151

5252
如果应用程序由多个环境组成,则可以使用 `environments` 配置选项显式配置这些环境。
5353

@@ -70,9 +70,9 @@ export default {
7070
}
7171
```
7272

73-
如果没有明确说明,环境将继承已配置的顶级配置选项(例如,新的 `server``edge` 环境将继承 `build.sourcemap: false` 选项)。少数顶级选项(如 `optimizeDeps`)仅适用于 `client` 环境,因为它们在默认应用于服务器环境时效果不佳。这些选项在[配置参考](/config/)中带有 <NonInheritBadge /> 标记。也可以通过 `environments.client` 明确配置 `client` 环境,但我们建议使用顶级选项进行配置,以便在添加新环境时客户端配置保持不变。
73+
如果没有明确说明,环境将继承已配置的顶级配置选项(例如,新的 `server``edge` 环境将继承 `build.sourcemap: false` 选项)。少数顶级选项(如 `optimizeDeps`)仅适用于 `client` 环境,因为它们在默认应用于服务器环境时效果不佳。这些选项在 [配置参考](/config/) 中带有 <NonInheritBadge /> 标记。也可以通过 `environments.client` 明确配置 `client` 环境,但我们建议使用顶级选项进行配置,以便在添加新环境时客户端配置保持不变。
7474

75-
`EnvironmentOptions` 接口公开所有每个环境选项。有些环境选项适用于 `build``dev`,如 `resolve`。还有 `DevEnvironmentOptions``BuildEnvironmentOptions` 用于开发和构建特定选项(如 `dev.warmup``build.outDir`)。一些选项(例如`optimizeDeps`)仅适用于 dev,但为了向后兼容,它保留为顶层而不是嵌套在`dev`中。
75+
`EnvironmentOptions` 接口公开所有每个环境选项。有些环境选项适用于 `build``dev`,如 `resolve`。还有 `DevEnvironmentOptions``BuildEnvironmentOptions` 用于开发和构建特定选项(如 `dev.warmup``build.outDir`)。一些选项(例如 `optimizeDeps`)仅适用于 dev,但为了向后兼容,它保留为顶层而不是嵌套在`dev`中。
7676

7777
```ts
7878
interface EnvironmentOptions {

guide/api-javascript.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ parentServer.use(vite.middlewares)
7777

7878
## `ResolvedConfig` {#resolvedconfig}
7979

80-
`ResolvedConfig` 接口和 `UserConfig` 有完全相同的属性,期望多数属性是已经解析完成且不为 undefined。它同样包括下面这样的工具方法:
80+
`ResolvedConfig` 接口拥有和 `UserConfig` 完全相同的属性,但区别在于这些属性多数都已经被解析完成,并且不会是 `undefined`。它同样包括下面这样的工具方法:
8181

8282
- `config.assetsInclude`:一个函数,用来检查一个 `id` 是否被考虑为是一个资源。
8383
- `config.logger`Vite 内部的日志对象。

guide/api-plugin.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ Vite 插件也可以提供钩子来服务于特定的 Vite 目标。这些钩子
259259
- **种类:** `async``sequential`
260260
- **此外请看** [ViteDevServer](./api-javascript#vitedevserver)
261261

262-
是用于配置开发服务器的钩子。最常见的用例是在内部 [connect](https://github.com/senchalabs/connect) 应用程序中添加自定义中间件:
262+
是用于配置开发服务器的钩子。最常见的用例是在内部 [connect](https://github.com/senchalabs/connect) 应用程序中添加自定义中间件
263263

264264
```js
265265
const myPlugin = () => ({
@@ -274,7 +274,7 @@ Vite 插件也可以提供钩子来服务于特定的 Vite 目标。这些钩子
274274

275275
**注入后置中间件**
276276

277-
`configureServer` 钩子将在内部中间件被安装前调用,所以自定义的中间件将会默认会比内部中间件早运行。如果你想注入一个在内部中间件 **之后** 运行的中间件,你可以从 `configureServer` 返回一个函数,将会在内部中间件安装后被调用:
277+
`configureServer` 钩子将在内部中间件被安装前调用,所以自定义的中间件默认会比内部中间件早运行。如果你想注入一个在内部中间件 **之后** 运行的中间件,你可以从 `configureServer` 返回一个函数,将会在内部中间件安装后被调用:
278278

279279
```js
280280
const myPlugin = () => ({
@@ -293,7 +293,7 @@ Vite 插件也可以提供钩子来服务于特定的 Vite 目标。这些钩子
293293

294294
**存储服务器访问**
295295

296-
在某些情况下,其他插件钩子可能需要访问开发服务器实例(例如访问 WebSocket 服务器、文件系统监视程序或模块图)。这个钩子也可以用来存储服务器实例以供其他钩子访问:
296+
在某些情况下,其他插件钩子可能需要访问开发服务器实例(例如访问 WebSocket 服务器、文件系统监视程序或模块图)。这个钩子也可以用来存储服务器实例以供其他钩子访问
297297

298298
```js
299299
const myPlugin = () => {
@@ -342,14 +342,14 @@ Vite 插件也可以提供钩子来服务于特定的 Vite 目标。这些钩子
342342
- **类型:** `IndexHtmlTransformHook | { order?: 'pre' | 'post', handler: IndexHtmlTransformHook }`
343343
- **种类:** `async``sequential`
344344

345-
转换 `index.html` 的专用钩子。钩子接收当前的 HTML 字符串和转换上下文。上下文在开发期间暴露[`ViteDevServer`](./api-javascript#vitedevserver)实例,在构建期间暴露 Rollup 输出的包。
345+
转换 `index.html` 的专用钩子。钩子接收当前的 HTML 字符串和转换上下文。上下文在开发期间暴露 [`ViteDevServer`](./api-javascript#vitedevserver) 实例,在构建期间暴露 Rollup 输出的包。
346346

347-
这个钩子可以是异步的,并且可以返回以下其中之一:
347+
这个钩子可以是异步的,并且可以返回以下其中之一
348348
- 经过转换的 HTML 字符串
349349
- 注入到现有 HTML 中的标签描述符对象数组(`{ tag, attrs, children }`)。每个标签也可以指定它应该被注入到哪里(默认是在 `<head>` 之前)
350350
- 一个包含 `{ html, tags }` 的对象
351351

352-
默认情况下 `order``undefined`,这个钩子会在 HTML 被转换后应用。为了注入一个应该通过 Vite 插件管道的脚本, `order: 'pre'` 指将在处理 HTML 之前应用。 `order: 'post'` 是在所有未定义的 `order` 的钩子函数被应用后才应用。
352+
默认情况下 `order``undefined`,这个钩子会在 HTML 被转换后应用。为了注入一个应该通过 Vite 插件管道的脚本,`order: 'pre'` 指将在处理 HTML 之前应用。`order: 'post'` 是在所有未定义的 `order` 的钩子函数被应用后才应用。
353353

354354
**基础示例:**
355355

@@ -628,7 +628,7 @@ Vite 暴露了 [`@rollup/pluginutils` 的 `createFilter`](https://github.com/rol
628628

629629
### 钩子过滤功能 {#hook-filters}
630630

631-
Rolldown 引入了[钩子过滤器功能](https://rolldown.rs/apis/plugin-api/hook-filters) ,以减少 Rust 和 JavaScript 运行时之间的通信开销。此功能允许插件指定确定何时调用钩子的模式,从而通过避免不必要的钩子调用来提高性能。
631+
Rolldown 引入了 [钩子过滤器功能](https://rolldown.rs/apis/plugin-api/hook-filters),以减少 Rust 和 JavaScript 运行时之间的通信开销。此功能允许插件指定确定何时调用钩子的模式,从而通过避免不必要的钩子调用来提高性能。
632632

633633
Rollup 4.38.0+ 和 Vite 6.3.0+ 也支持此功能。为了使你的插件向后兼容旧版本,请确保在钩子处理程序中也运行该过滤器。
634634

guide/assets.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ CSS.paintWorklet.addModule(workletURL)
5757

5858
### 显式内联处理 {#explicit-inline-handling}
5959

60-
可以分别使用`?inline``?no-inline`后缀,明确导入带内联或不带内联的静态资源。
60+
可以分别使用 `?inline``?no-inline` 后缀,明确导入带内联或不带内联的静态资源。
6161

6262
```js twoslash
6363
import 'vite/client'

guide/backend-integration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 后端集成 {#backend-integration}
22

33
:::tip Note
4-
如果你想使用传统的后端(如 Rails, Laravel)来服务 HTML,但使用 Vite 来服务其他资源,可以查看在 [Awesome Vite](https://github.com/vitejs/awesome-vite#integrations-with-backends) 上的已有的后端集成列表。
4+
如果你想使用传统的后端(如 RailsLaravel)来服务 HTML,但使用 Vite 来服务其他资源,可以查看在 [Awesome Vite](https://github.com/vitejs/awesome-vite#integrations-with-backends) 上的已有的后端集成列表。
55

66
如果你需要自定义集成,你可以按照本指南的步骤配置它:
77
:::
@@ -62,7 +62,7 @@
6262
</script>
6363
```
6464

65-
3. 在生产环境中, 在运行 `vite build` 之后,一个 `.vite/manifest.json` 文件将与静态资源文件一同生成。一个示例清单文件会像下面这样:
65+
3. 在生产环境中在运行 `vite build` 之后,一个 `.vite/manifest.json` 文件将与静态资源文件一同生成。一个示例清单文件会像下面这样:
6666

6767
```json [.vite/manifest.json] style:max-height:400px
6868
{

guide/build.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
- Firefox >=114
1616
- Safari >=16.4
1717

18-
你也可以通过 [`build.target` 配置项](/config/build-options.md#build-target) 指定构建目标,最低支持 `es2015`。如果设置较低的目标值,Vite 仍然需要这些最低的浏览器支持范围,因为它依赖于[原生的 ESM 动态导入](https://caniuse.com/es6-module-dynamic-import)[`import.meta`](https://caniuse.com/mdn-javascript_operators_import_meta)
18+
你也可以通过 [`build.target` 配置项](/config/build-options.md#build-target) 指定构建目标,最低支持 `es2015`。如果设置较低的目标值,Vite 仍然需要这些最低的浏览器支持范围,因为它依赖于 [原生的 ESM 动态导入](https://caniuse.com/es6-module-dynamic-import) [`import.meta`](https://caniuse.com/mdn-javascript_operators_import_meta)
1919

2020
<!-- 查找 `defaultEsbuildSupported` 常量以获取更多信息。 -->
2121

@@ -24,7 +24,7 @@
2424
- Safari >=11.1
2525
- Edge >=79
2626

27-
请注意,默认情况下 Vite 只处理语法转译,且 **不包含任何 polyfill**。你可以访问 https://cdnjs.cloudflare.com/polyfill/ ,这个网站可以根据用户的浏览器 UserAgent 字符串自动生成 polyfill 包。
27+
请注意,默认情况下 Vite 只处理语法转译,且 **不包含任何 polyfill**。你可以访问 <https://cdnjs.cloudflare.com/polyfill/>,这个网站可以根据用户的浏览器 UserAgent 字符串自动生成 polyfill 包。
2828

2929
传统浏览器可以通过插件 [@vitejs/plugin-legacy](https://github.com/vitejs/vite/tree/main/packages/plugin-legacy) 来支持,它将自动生成传统版本的 chunk 及与其相对应 ES 语言特性方面的 polyfill。兼容版的 chunk 只会在不支持原生 ESM 的浏览器中进行按需加载。
3030

@@ -269,7 +269,7 @@ dist/my-lib.umd.cjs 0.30 kB / gzip: 0.16 kB
269269
270270
### CSS 支持 {#css-support}
271271
272-
如果您的库导入了 CSS,除了内置的 JS 文件外,它还将作为一个 CSS 文件打包在一起,例如 `dist/my-lib.css`。文件名默认为 `build.lib.fileName`,但也可以使用 [`build.lib.cssFileName`](/config/build-options.md#build-lib)进行更改。
272+
如果您的库导入了 CSS,除了内置的 JS 文件外,它还将作为一个 CSS 文件打包在一起,例如 `dist/my-lib.css`。文件名默认为 `build.lib.fileName`,但也可以使用 [`build.lib.cssFileName`](/config/build-options.md#build-lib) 进行更改。
273273
274274
您可以在 `package.json` 中导出 CSS 文件,以便用户导入:
275275
@@ -291,7 +291,7 @@ dist/my-lib.umd.cjs 0.30 kB / gzip: 0.16 kB
291291
```
292292
293293
::: tip 文件扩展名
294-
如果 `package.json` 不包含 `"type": "module"`,Vite 会生成不同的文件后缀名以兼容 Node.js。`.js` 会变为 `.mjs``.cjs` 会变为 `.js`
294+
如果 `package.json` 不包含 `"type": "module"`,Vite 会生成不同的文件后缀名以兼容 Node.js。`.js` 会变为 `.mjs``.cjs` 会变为 `.js`
295295
:::
296296
297297
::: tip 环境变量

guide/dep-pre-bundling.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
## 原因 {#the-why}
66

7-
这就是 Vite 执行时所做的“依赖预构建”。这个过程有两个目的:
7+
这就是 Vite 执行时所做的“依赖预构建”。这个过程有两个目的
88

99
1. **CommonJS 和 UMD 兼容性:** 在开发阶段中,Vite 的开发服务器将所有代码视为原生 ES 模块。因此,Vite 必须先将以 CommonJS 或 UMD 形式提供的依赖项转换为 ES 模块。
1010

@@ -19,7 +19,7 @@
1919

2020
有些包将它们的 ES 模块构建为许多单独的文件,彼此导入。例如,[`lodash-es` 有超过 600 个内置模块](https://unpkg.com/browse/lodash-es/)!当我们执行 `import { debounce } from 'lodash-es'` 时,浏览器同时发出 600 多个 HTTP 请求!即使服务器能够轻松处理它们,但大量请求会导致浏览器端的网络拥塞,使页面加载变得明显缓慢。
2121

22-
通过将 `lodash-es` 预构建成单个模块,现在我们只需要一个HTTP请求
22+
通过将 `lodash-es` 预构建成单个模块,现在我们只需要一个 HTTP 请求
2323

2424
::: tip 注意
2525
依赖预构建仅适用于开发模式。
@@ -33,7 +33,7 @@
3333

3434
## Monorepo 和链接依赖 {#monorepos-and-linked-dependencies}
3535

36-
在一个 monorepo 启动中,该仓库中的某个包可能会成为另一个包的依赖。Vite 会自动侦测没有从 `node_modules` 解析的依赖项,并将链接的依赖视为源码。它不会尝试打包被链接的依赖,而是会分析被链接依赖的依赖列表。
36+
在一个 monorepo 项目中,该仓库中的某个包可能会成为另一个包的依赖。Vite 会自动侦测没有从 `node_modules` 解析的依赖项,并将链接的依赖视为源码。它不会尝试打包被链接的依赖,而是会分析被链接依赖的依赖列表。
3737

3838
然而,这需要被链接的依赖被导出为 ESM 格式。如果不是,那么你可以在配置里将此依赖添加到 [`optimizeDeps.include`](/config/dep-optimization-options.md#optimizedeps-include) 中。
3939

0 commit comments

Comments
 (0)