File tree Expand file tree Collapse file tree 2 files changed +60
-6
lines changed Expand file tree Collapse file tree 2 files changed +60
-6
lines changed Original file line number Diff line number Diff line change @@ -13,6 +13,9 @@ export default defineConfig({
13
13
ssr : {
14
14
noExternal : [ "gsap" ] ,
15
15
} ,
16
+ optimizeDeps : {
17
+ entries : [ ] ,
18
+ } ,
16
19
} ,
17
20
themeConfig : {
18
21
// https://vitepress.dev/reference/default-theme-config
@@ -56,6 +59,7 @@ export default defineConfig({
56
59
} ,
57
60
{ text : "性能优化" , link : "/optimization/image" } ,
58
61
{ text : "Node" , link : "/node/initial" } ,
62
+ { text : "Vite" , link : "/vite/initial" } ,
59
63
] ,
60
64
61
65
sidebar : {
@@ -190,17 +194,13 @@ export default defineConfig({
190
194
"/vscode/" : [
191
195
{
192
196
text : "vscode" ,
193
- items : [
194
- { text : "插件" , link : "/vscode/extension" } ,
195
- ] ,
197
+ items : [ { text : "插件" , link : "/vscode/extension" } ] ,
196
198
} ,
197
199
] ,
198
200
"/node/" : [
199
201
{
200
202
text : "Node" ,
201
- items : [
202
- { text : "概述" , link : "/node/initial" } ,
203
- ] ,
203
+ items : [ { text : "概述" , link : "/node/initial" } ] ,
204
204
} ,
205
205
] ,
206
206
"/browser/about/" : [
Original file line number Diff line number Diff line change
1
+ ---
2
+ layout : doc
3
+ outline : deep
4
+ ---
5
+
6
+ ## 契机
7
+ 1 . 浏览器支持es模块,之前打包工具打包后的js文件都是放在script标签上进行引入,不能直接使用es模块引入
8
+ 2 . 以编译型语言编写的javascript工具的兴起
9
+
10
+ 随着项目的日渐庞大,基于js的打包工具开始遇到性能瓶颈,文件开发服务器可能需要几分钟才能就绪,即使使用热模块更新(HMR)也需要几秒
11
+
12
+ ## 开发服务器启动缓慢
13
+ 当冷启动服务器时,传统的打包器必须抓取并构建整个应用程序
14
+
15
+ vite从依赖,源代码这两部分进行优化
16
+
17
+ ## vite
18
+ 由两部分组成
19
+ 1 . 开发服务器提供了比原生es模块更强大的功能扩展
20
+ 2 . 一系列使用rollup打包你的代码的命令
21
+
22
+ vite提供了默认且合理的配置
23
+
24
+ 通过插件,可以支持框架或与其他工具集成
25
+
26
+ ## 功能
27
+ ### 依赖解析和预捆绑
28
+ 浏览器不支持裸模块,vite会进行处理
29
+
30
+ 1 . 使用esbuild预捆绑依赖,会将其他模块转化为ESM
31
+ 2 . 替换成有效的url进行import
32
+
33
+ ::: tip
34
+ 依赖被强缓存,如果需要调试依赖,可以在devtool禁用缓存
35
+ :::
36
+ ### HMR
37
+ Vite 在原生 ESM 上提供了HMR API。具有 HMR 功能的框架可以利用该 API 提供即时、精确的更新,而无需重新加载页面或清除应用程序状态。不需要手动设置这些,插件已经为你做好了。
38
+ ### TypeScript
39
+ ** 仅限转译**
40
+
41
+ 转译可以基于每个文件进行,并且与 Vite 的按需编译模型完美契合。相比之下,类型检查需要了解整个模块图。将类型检查强行塞入 Vite 的转换管道将不可避免地损害 Vite 的速度优势。
42
+
43
+ vite使用esbuild进行转译,比tsc快20到30倍
44
+
45
+ ::: tip
46
+ 使用类型导入和导出语法可以避免潜在问题
47
+ ``` js
48
+ import type { T } from ' only/types'
49
+ export type { T }
50
+ ```
51
+ :::
52
+
53
+ ## 依赖预捆绑
54
+ ` 第一次 ` 在项目下执行vite,vite将为依赖执行预捆绑。他是自动且透明的
You can’t perform that action at this time.
0 commit comments