[4] 构建后的效果

34 阅读1分钟

构建后的index.html

image.png

image.png

关于CSS

Vite 会自动地将一个异步 chunk 模块中使用到的 CSS 代码抽取出来并为其生成一个单独的文件。

这个 CSS 文件将在该异步 chunk 加载完成时自动通过一个 标签载入,该异步 chunk 会保证只在 CSS 加载完毕后再执行。所以你在打包后的index.html中是看不到这个link的。

image.png h3 是异步模块使用的css,只有在加载到该异步模块时,才去动态插入style。

那些非异步 chunk 模块中使用到的 CSS ,集中打包到一起。你在打包后的index.html中是可以看到这个link的。--图一中的3。

如果你更倾向于将所有的 CSS 抽取到一个文件中,你可以通过设置 build.cssCodeSplit 为 false 来禁用 CSS 代码分割。

运行时,导入 .css 文件将会把内容插入到 标签中,同时也带有 HMR 支持。

路径的处理

原生 ES 导入不支持下面这样的裸模块导入:import { someMethod } from 'my-dep'。

那vite是如何让其不报错的呢。

开发过程中的main.ts项目运行时的main.ts
image.pngimage.png

Vite 的一个实现核心 - 拦截浏览器对模块的请求并返回处理后的结果.

通过工程下的 main.js 和开发环境下的实际加载的 main.js 对比,发现 main.js 内容发生了改变,变成了绝对路径。