Skip to content

Commit

Permalink
Merge branch 'main' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
ShenQingchuan authored Dec 11, 2022
2 parents 14c9004 + 8691491 commit cf2ea53
Show file tree
Hide file tree
Showing 16 changed files with 77 additions and 117 deletions.
39 changes: 0 additions & 39 deletions .github/workflows/deploy.yml

This file was deleted.

6 changes: 3 additions & 3 deletions .vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ export default defineConfig({
},

footer: {
message: '根据 MIT 许可证发布。',
copyright: 'Copyright © 2019-present Evan You & Vite Contributors'
copyright:
'本中文文档内容版权为 Vite 官方中文翻译团队所有,保留所有权利。'
},

nav: [
Expand Down Expand Up @@ -261,7 +261,7 @@ export default defineConfig({

markdown: {
anchor: {
permalink: renderPermaLink,
permalink: renderPermaLink
},
config: (md) => {
md.use(MarkDownItCustomAnchor)
Expand Down
13 changes: 1 addition & 12 deletions .vitepress/markdown-it-custom-anchor/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,4 @@ export default function(md) {
const titleAndId = oldTitle(tokens, idx, options, env, slf);
return removeAnchorFromTitle(titleAndId);
};

const oldHeading = md.renderer.rules.heading_open;
md.renderer.rules.heading_open = (tokens, idx, options, env, slf) => {
const head = oldHeading(tokens, idx, options, env, slf);
const data = md.__data;
const headers = data.headers || (data.headers = []);
headers.forEach(element => {
element.title = removeAnchorFromTitle(element.title);
});
return head;
}
};
};
1 change: 1 addition & 0 deletions .vitepress/theme/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
background: var(--c-brand);
color: white;
border-radius: 10px;
vertical-align: middle;
}

#wwads-container {
Expand Down
1 change: 1 addition & 0 deletions CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
cn.vitejs.dev
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,17 @@ $ pnpm i
# 启动开发服务器
$ pnpm dev
```

## 版权声明

本仓库所包含的中文翻译内容(即所有 `.md` 文件),其版权为 Vite 官方中文翻译团队所有。除官方中文文档 [cn.vitejs.dev](https://cn.vitejs.dev) 之外,不得在其它域名下进行未经授权的转载或部署。

## 贡献者统计

> 统计规则:所有通过 Pull Request 产生了对 `main` 分支 commit 的贡献者。
>
> 头像图生成逻辑参见:[github-contributor-svg-generator](https://github.com/ShenQingchuan/github-contributor-svg-generator)
<p align="center">
<img src="https://cdn.jsdelivr.net/gh/ShenQingchuan/github-contributor-svg-generator@main/dist/vitejs/docs-cn.png" />
</p>
6 changes: 2 additions & 4 deletions config/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# 配置 Vite {#configuring-vite}

## 配置文件 {#config-file}

当以命令行方式运行 `vite` 时,Vite 会自动解析 [项目根目录](/guide/#index-html-and-project-root) 下名为 `vite.config.js` 的文件。

最基础的配置文件是这样的:
Expand All @@ -23,7 +21,7 @@ vite --config my-config.js

## 配置智能提示 {#config-intellisense}

因为 Vite 本身附带 Typescript 类型,所以你可以通过 IDE 和 jsdoc 的配合来实现智能提示:
因为 Vite 本身附带 TypeScript 类型,所以你可以通过 IDE 和 jsdoc 的配合来实现智能提示:

```js
/** @type {import('vite').UserConfig} */
Expand Down Expand Up @@ -80,7 +78,7 @@ export default defineConfig(async ({ command, mode }) => {
})
```

### 环境变量 {#environment-variables}
## 环境变量 {#environment-variables}

环境变量通常可以从 `process.env` 获得。

Expand Down
28 changes: 14 additions & 14 deletions guide/api-plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -305,12 +305,12 @@ Vite 插件也可以提供钩子来服务于特定的 Vite 目标。这些钩子

注意 `configureServer` 在运行生产版本时不会被调用,所以其他钩子需要防范它缺失。

### `configurePreviewServer`
### `configurePreviewServer` {#configurepreviewserver}

- **类型:** `(server: { middlewares: Connect.Server, httpServer: http.Server }) => (() => void) | void | Promise<(() => void) | void>`
- **种类:** `async`, `sequential`

[`configureServer`](/guide/api-plugin.html#configureserver) 相同但是作为预览服务器。它提供了一个 [connect](https://github.com/senchalabs/connect) 服务器实例及其底层的 [http server](https://nodejs.org/api/http.html)。与 `configureServer` 类似,`configurePreviewServer` 这个钩子也是在其他中间件安装前被调用的。如果你想要在其他中间件 **之后** 安装一个插件,你可以从 `configurePreviewServer` 返回一个函数,它将会在内部中间件被安装之后再调用:
[`configureServer`](/guide/api-plugin.html#configureserver) 相同但是作为预览服务器。它提供了一个 [connect](https://github.com/senchalabs/connect) 服务器实例及其底层的 [http server](https://nodejs.org/api/http.html)。与 `configureServer` 类似,`configurePreviewServer` 这个钩子也是在其他中间件安装前被调用的。如果你想要在其他中间件 **之后** 安装一个插件,你可以从 `configurePreviewServer` 返回一个函数,它将会在内部中间件被安装之后再调用:

```js
const myPlugin = () => ({
Expand Down Expand Up @@ -516,17 +516,17 @@ normalizePath('foo\\bar') // 'foo/bar'
normalizePath('foo/bar') // 'foo/bar'
```

## Filtering, include/exclude pattern
## 过滤与 include/exclude 模式 {#filtering-include-exclude-pattern}

Vite exposes [`@rollup/pluginutils`'s `createFilter`](https://github.com/rollup/plugins/tree/master/packages/pluginutils#createfilter) function to encourage Vite specific plugins and integrations to use the standard include/exclude filtering pattern, which is also used in Vite core itself.
Vite 暴露了 [`@rollup/pluginutils``createFilter`](https://github.com/rollup/plugins/tree/master/packages/pluginutils#createfilter) 函数,以支持 Vite 独有插件和集成使用标准的 include/exclude 过滤模式,Vite 核心自身也正在使用它。

## Client-server Communication
## 客户端与服务端间通信 {#client-server-communication}

Since Vite 2.9, we provide some utilities for plugins to help handle the communication with clients.
Vite 2.9 开始,我们为插件提供了一些实用工具,以帮助处理与客户端的通信。

### Server to Client
### 服务端到客户端 {#server-to-client}

On the plugin side, we could use `server.ws.send` to broadcast events to all the clients:
在插件一侧,我们可以使用 `server.ws.send` 去给所有客户端广播事件:

```js
// vite.config.js
Expand All @@ -542,11 +542,11 @@ export default defineConfig({
})
```

::: tip NOTE
We recommend **always prefixing** your event names to avoid collisions with other plugins.
::: tip 注意
我们建议总是给你的事件名称 **添加前缀**,以避免与其他插件冲突。
:::

On the client side, use [`hot.on`](/guide/api-hmr.html#hot-on-event-cb) to listen to the events:
在客户端侧,使用 [`hot.on`](/guide/api-hmr.html#hot-on-event-cb) 去监听事件:

```ts
// client side
Expand All @@ -557,9 +557,9 @@ if (import.meta.hot) {
}
```

### Client to Server
### 客户端到服务端 {#client-to-server}

To send events from the client to the server, we can use [`hot.send`](/guide/api-hmr.html#hot-send-event-payload):
为了从客户端向服务端发送事件,我们可以使用 [`hot.send`](/guide/api-hmr.html#hot-send-event-payload)

```ts
// client side
Expand All @@ -568,7 +568,7 @@ if (import.meta.hot) {
}
```

Then use `server.ws.on` and listen to the events on the server side:
然后使用 `server.ws.on` 并在服务端监听这些事件:

```js
// vite.config.js
Expand Down
4 changes: 2 additions & 2 deletions guide/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export default defineConfig({

## 产物分块策略 {#chunking-strategy}

你可以配置在使用 `build.rollupOptions.output.manualChunks` 时各个 chunk 是如何分割的(查看 [Rollup 相应文档](https://rollupjs.org/guide/en/#outputmanualchunks))。 Vite 2.8 ,默认的策略是将 chunk 分割为 `index``vendor`。这对一些 SPA 来说是好的策略,但是要对每一种用例目标都提供一种通用解决方案是非常困难的。从 Vite 2.9 起,`manualChunks` 默认情况下不再被更改。你可以通过在配置文件中添加 `splitVendorChunkPlugin` 来继续使用 “分割 Vendor Chunk” 策略:
你可以通过配置 `build.rollupOptions.output.manualChunks` 来自定义 chunk 分割策略(查看 [Rollup 相应文档](https://rollupjs.org/guide/en/#outputmanualchunks))。 Vite 2.8 及更早版本中,默认的策略是将 chunk 分割为 `index``vendor`。这对一些 SPA 来说是好的策略,但是要对所有应用场景提供一种通用解决方案是非常困难的。从 Vite 2.9 起,`manualChunks` 默认情况下不再被更改。你可以通过在配置文件中添加 `splitVendorChunkPlugin` 来继续使用 “分割 Vendor Chunk” 策略:

```js
// vite.config.js
Expand All @@ -60,7 +60,7 @@ export default defineConfig({

也可以用一个工厂函数 `splitVendorChunk({ cache: SplitVendorChunkCache })` 来提供该策略,在需要与自定义逻辑组合的情况下,`cache.reset()` 需要在 `buildStart` 阶段被调用,以便构建的 watch 模式在这种情况下正常工作。

## 文件变化时重新构建 {#rebuild-on-files-changs}
## 文件变化时重新构建 {#rebuild-on-files-changes}

你可以使用 `vite build --watch` 来启用 rollup 的监听器。或者,你可以直接通过 `build.watch` 调整底层的 [`WatcherOptions`](https://rollupjs.org/guide/en/#watch-options) 选项:

Expand Down
6 changes: 3 additions & 3 deletions guide/dep-pre-bundling.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Pre-bundling dependencies: (正在预构建依赖:)

## 原因 {#the-why}

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

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

Expand Down Expand Up @@ -40,7 +40,7 @@ Pre-bundling dependencies: (正在预构建依赖:)

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

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

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

Expand All @@ -67,7 +67,7 @@ export default defineConfig({

默认的依赖项发现为启发式可能并不总是可取的。在你想要显式地从列表中包含/排除依赖项的情况下, 请使用 [`optimizeDeps` 配置项](/config/dep-optimization-options.md)

当你遇到不能直接在源码中发现的 import 时,`optimizeDeps.include``optimizeDeps.exclude` 就是典型的用例。例如,import 可能是插件转换的结果。这意味着 Vite 无法在初始扫描时发现 import —— 它只能在浏览器请求文件时转换后才能发现。这将导致服务器在启动后立即重新打包。
`optimizeDeps.include``optimizeDeps.exclude` 的一个典型使用场景,是当 Vite 在源码中无法直接发现 import 的时候。例如,import 可能是插件转换的结果。这意味着 Vite 无法在初始扫描时发现 import —— 只能在文件被浏览器请求并转换后才能发现。这将导致服务器在启动后立即重新打包。

`include``exclude` 都可以用来处理这个问题。如果依赖项很大(包含很多内部模块)或者是 CommonJS,那么你应该包含它;如果依赖项很小,并且已经是有效的 ESM,则可以排除它,让浏览器直接加载它。

Expand Down
8 changes: 4 additions & 4 deletions guide/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ const modules = {
}
```

当与 `eager` 一同存在时,甚至可能可以对这些模块进行 tree-shaking。
当与 `eager` 一同存在时,甚至可以对这些模块进行 tree-shaking。

```ts
const modules = import.meta.glob('./dir/*.js', { import: 'setup', eager: true })
Expand Down Expand Up @@ -492,7 +492,7 @@ init({
请使用 [`vite-plugin-wasm`](https://github.com/Menci/vite-plugin-wasm) 或其他社区上的插件来处理。
:::

## Web Worker {#web-workers}
## Web Workers {#web-workers}

### 通过构造器导入 {#import-with-constructors}

Expand Down Expand Up @@ -528,13 +528,13 @@ Worker 脚本也可以使用 `import` 语句来替代 `importScripts()` ——
import MyWorker from './worker?worker&inline'
```

如果你想要将一个 URL 的形式读取该 worker,请添加 `url` 这个 query:
如果你想要以一个 URL 的形式读取该 worker,请添加 `url` 这个 query:

```js
import MyWorker from './worker?worker&url'
```

查看 [Worker 选项](/config/worker-options.md) 了解更多关于如何配置打包全部 worker 的相关细节。workers.
关于如何配置打包全部 worker,可以查看 [Worker 选项](/config/worker-options.md) 了解更多相关细节。

## 构建优化 {#build-optimizations}

Expand Down
2 changes: 1 addition & 1 deletion guide/static-deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

本指南建立在以下几个假设基础之上:

- 你正在使用的是默认的构建输出路径(`dist`)。这个路径 [可以通过 `build.outDir` 更改](/config/build-options.md#build-outdir),在这种情况下,你可以从这篇指南中找到出所需的指引
- 你正在使用的是默认的构建输出路径(`dist`)。这个路径 [可以通过 `build.outDir` 更改](/config/build-options.md#build-outdir),在这种情况下,你可以从这篇指南中找到所需的指引
- 你正在使用 NPM;或者 Yarn 等其他可以运行下面的脚本指令的包管理工具。
- Vite 已作为一个本地开发依赖(dev dependency)安装在你的项目中,并且你已经配置好了如下的 npm scripts:

Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
"description": "Vite.js documentation Chinese translation.",
"repository": "https://github.com/vitejs/docs-cn",
"author": "Evan You",
"license": "MIT",
"private": true,
"devDependencies": {
"chalk": "^4.1.0",
Expand Down
32 changes: 9 additions & 23 deletions plugins/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,43 +8,29 @@ Vite 旨在为常见的 web 开发工作提供开箱即用的支持。在搜索

## 官方插件 {#official-plugins}

<<<<<<< HEAD
### [@vitejs/plugin-vue](https://github.com/vitejs/vite/tree/main/packages/plugin-vue) {#vitejsplugin-vue}
=======
### [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue)
>>>>>>> 4008e8257dbc9104d20d8c1343e6d4107f7929b9
### [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue) {#vitejsplugin-vue}

- 提供 Vue 3 单文件组件支持
- 提供 Vue 3 单文件组件支持

<<<<<<< HEAD
### [@vitejs/plugin-vue-jsx](https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx) {#vitejsplugin-vue-jsx}
=======
### [@vitejs/plugin-vue-jsx](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue-jsx)
>>>>>>> 4008e8257dbc9104d20d8c1343e6d4107f7929b9
### [@vitejs/plugin-vue-jsx](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue-jsx) {#vitejsplugin-vue-jsx}

- 提供 Vue 3 JSX 支持(通过 [专用的 Babel 转换插件](https://github.com/vuejs/jsx-next))。

<<<<<<< HEAD
### [@vitejs/plugin-react](https://github.com/vitejs/vite/tree/main/packages/plugin-react) {#vitejsplugin-react}
### [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react) {#vitejsplugin-react}

- 提供完整的 React 支持
=======
### [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react)
- 使用 esbuild 和 Babel,提供极速的 HMR 和一个微小体积的包脚注,同时提升灵活性,能够使用 Babel 的转换管线。

- Uses esbuild and Babel, achieving fast HMR with a small package footprint and the flexibility of being able to use the Babel transform pipeline.
### [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) {#vitejsplugin-react-swc}

### [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc)

- Uses esbuild during build, but replaces Babel with SWC during development. For big projects that don't require non-standard React extensions, cold start and Hot Module Replacement (HMR) can be significantly faster.
>>>>>>> 4008e8257dbc9104d20d8c1343e6d4107f7929b9
- 在构建时使用 esbuild,但会在开发时使用 SWC 替换 Babel。对不需要标准 React 扩展的大型项目,冷启动和模块热替换(HMR)将会有显著提升。

### [@vitejs/plugin-legacy](https://github.com/vitejs/vite/tree/main/packages/plugin-legacy) {#vitejsplugin-legacy}

- 为打包后的文件提供传统浏览器兼容性支持
- 为打包后的文件提供传统浏览器兼容性支持

## 社区插件 {#community-plugins}

> 查看 [awesome-vite](https://github.com/vitejs/awesome-vite#plugins) - 你也可以通过 PR 的方式将你的插件添加到此列表中。
查看 [awesome-vite](https://github.com/vitejs/awesome-vite#plugins) - 你也可以通过 PR 的方式将你的插件添加到此列表中。

## Rollup 插件 {#rollup-plugins}

Expand Down
11 changes: 0 additions & 11 deletions public/_headers

This file was deleted.

22 changes: 22 additions & 0 deletions vercel.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"headers": [
{
"source": "/assets/(.*)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=31536000, immutable"
}
]
},
{
"source": "/(.*).png",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=604800, immutable"
}
]
}
]
}

0 comments on commit cf2ea53

Please sign in to comment.