File tree Expand file tree Collapse file tree 7 files changed +23
-23
lines changed Expand file tree Collapse file tree 7 files changed +23
-23
lines changed Original file line number Diff line number Diff line change @@ -56,8 +56,8 @@ module.exports = {
56
56
text : '指引' ,
57
57
children : [
58
58
{
59
- text : '介绍 ' ,
60
- link : '/guide/introduction '
59
+ text : '为什么选 Vite ' ,
60
+ link : '/guide/why '
61
61
} ,
62
62
{
63
63
text : '开始' ,
Original file line number Diff line number Diff line change @@ -320,7 +320,7 @@ Vite 会为入口 chunk 和它们在打包出的 HTML 中的直接引入自动
320
320
321
321
在实际项目中,Rollup 通常会生成 “共用” chunk —— 被两个或以上的其他 chunk 共享的 chunk。与动态导入相结合,会很容易出现下面这种场景:
322
322
323
- ![ graph] ( /graph.png )
323
+ ![ graph] ( /images/ graph.png )
324
324
325
325
在无优化的情境下,当异步 chunk ` A ` 被导入时,浏览器将必须请求和解析 ` A ` ,然后它才能弄清楚它首先需要那个共用 chunk ` C ` 。这会导致额外的网络往返:
326
326
Original file line number Diff line number Diff line change 1
1
# 开始
2
2
3
- 如果你有兴趣在尝试之前了解更多关于 Vite 的信息,请移步 [ 介绍] ( ./introduction ) 章节。
3
+ ## 总览
4
+
5
+ Vite (法语意为 "快速的",发音 ` /vit/ ` ) 是一种新型前端构建工具,能够显著提升前端开发体验,它主要由两部分组成:
6
+
7
+ - 一个针对 [ 原生 ES Modules] ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules ) 有许多增强功能的开发服务器,并附带 [ 丰富的内建功能] ( ./features ) 和速度快到惊人的 [ 模块热重载(HMR)] ( ./features#hot-module-replacement ) 。
8
+
9
+ - 一套 [ 构建指令] ( ./build ) 使用 [ Rollup] ( https://rollupjs.org ) 打包你的代码,预配置输出高度优化的静态资源用于生产。
10
+
11
+ 此外,Vite 通过它的 [ 插件 API] ( ./api-plugin ) 和 [ JavaScript API] ( ./api-javascript ) 具有高度的可扩展性,并支持全类型。
12
+
13
+ ## 浏览器支持
14
+
15
+ - 开发环境中:Vite 需要在支持 [ 原生 ES 模块动态导入] ( https://caniuse.com/es6-module-dynamic-import ) 的浏览器中使用。
16
+
17
+ - 生产环境中:默认的构建目标浏览器支持 [ 通过脚本标签来引入原生 ES 模块] ( https://caniuse.com/es6-module ) 。可以通过官方插件 [ @vitejs/plugin-legacy ] ( https://github.com/vitejs/vite/tree/main/packages/plugin-legacy ) 支持传统浏览器。有关更多细节详见 [ 构建生产版本] ( ./build ) 。
4
18
5
19
## 第一个 Vite 项目
6
20
Original file line number Diff line number Diff line change 1
- # 介绍
2
-
3
- ## 总览
4
-
5
- Vite (法语意为 "快速的",发音 ` /vit/ ` ) 是一种新型前端构建工具,能够显著提升前端开发体验,它主要由两部分组成:
6
-
7
- - 一个针对 [ 原生 ES Modules] ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules ) 有许多增强功能的开发服务器,并附带 [ 丰富的内建功能] ( ./features ) 和速度快到惊人的 [ 模块热重载(HMR)] ( ./features#hot-module-replacement ) 。
8
-
9
- - 一套 [ 构建指令] ( ./build ) 使用 [ Rollup] ( https://rollupjs.org ) 打包你的代码,预配置输出高度优化的静态资源用于生产。
10
-
11
- 此外,Vite 通过它的 [ 插件 API] ( ./api-plugin ) 和 [ JavaScript API] ( ./api-javascript ) 具有高度的可扩展性,并支持全类型。
1
+ # 为什么选 Vite
12
2
13
3
## 现实问题
14
4
@@ -40,7 +30,9 @@ Vite 通过在一开始将应用中的模块区分为两类:**依赖** 和 **
40
30
41
31
### 缓慢的更新
42
32
43
- 当基于打包器启动时,编辑文件后将重新构建文件本身,打包器同时会使其模块图的一部分失活<sup >[[ 1]] ( #footnote-1 ) </sup >并重新整体构建。这样代价很高,并且重新加载页面会消除应用程序的当前状态,所以打包器支持了动态模块热重载(HMR):允许一个模块 “热替换” 它自己,而对页面其余部分没有影响。这大大改进了开发体验 - 然而,在实践中我们发现,即使是 HMR 更新速度也会随着应用程序规模的增长而显著下降。
33
+ 当基于打包器启动时,编辑文件后将重新构建文件本身。很显然我们不应该重新构建整个包,因为这样更新速度会随着应用体积增长而直线下降。
34
+
35
+ 一些打包器的开发服务器将构建内容存入内存,这样它们只需要在文件更改时使模块图的一部分失活<sup >[[ 1]] ( #footnote-1 ) </sup >,但它也仍需要整个重新构建并重载页面。这样代价很高,并且重新加载页面会消除应用程序的当前状态,所以打包器支持了动态模块热重载(HMR):允许一个模块 “热替换” 它自己,而对页面其余部分没有影响。这大大改进了开发体验 - 然而,在实践中我们发现,即使是 HMR 更新速度也会随着应用程序规模的增长而显著下降。
44
36
45
37
在 Vite 中,HMR 是在原生 ESM 上执行的。当编辑一个文件时,Vite 只需要精确地使已编辑的模块与其最近的 HMR 边界之间的链失效(大多数时候只需要模块本身),使 HMR 更新始终快速,无论应用程序的大小。
46
38
@@ -58,12 +50,6 @@ Vite 同时利用 HTTP 头来加速整个页面的加载(再次让浏览器为
58
50
59
51
虽然 ` esbuild ` 快得惊人,也已经是一个在构建库方面比较出色的工具,但一些针对构建 _ 应用_ 的重要功能仍然还在持续开发中 —— 特别是代码分割和 CSS 处理方面。就目前来说,Rollup 在应用打包方面更加成熟和灵活。尽管如此,当未来这些功能稳定后,我们也不排除使用 ` esbuild ` 作为生产构建器的可能。
60
52
61
- ## 浏览器支持
62
-
63
- - Vite 需要在支持 [ 原生 ES 模块动态导入] ( https://caniuse.com/es6-module-dynamic-import ) 的浏览器中使用。
64
-
65
- - 生产版本通过 [ 脚本标签来对原生 ES 模块] ( https://caniuse.com/es6-module ) 提供基本支持。Vite 默认情况下 ** 不** 执行任何兼容性转换。可以通过官方插件支持传统浏览器。有关更多细节,详见 [ 构建生产版本] ( ./build ) 。
66
-
67
53
## Vite 与 X 的区别是?
68
54
69
55
你可以查看 [ 比较] ( ./comparisons ) 章节获取更多细节,了解 Vite 与同类工具的异同。
File renamed without changes.
Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ actionText: 开始
5
5
actionLink : /guide/
6
6
7
7
altActionText : 了解更多
8
- altActionLink : /guide/introduction
8
+ altActionLink : /guide/why
9
9
10
10
features :
11
11
- title : 💡 极速的服务启动
You can’t perform that action at this time.
0 commit comments