当前位置: 首页 > 网络应用技术

Vite原理实施

时间:2023-03-06 12:22:13 网络应用技术

  引用原始作者:VITE,基于基于浏览器的ES Imports的开发服务器。请使用浏览器解析导入并按需将其在服务器端进行编译。

  跳过包装的概念后,使用了服务器。在同一时间,它不仅得到了VUE文件的支持,而且还获得了热门更新,并且随着模块的增加,热门更新的速度不会放慢速度。

  对于生产环境,可以用汇总包装相同的代码。尽管现在相对较艰难,但我认为这方向有潜力。

  做得好,可以完全解决半天热更新的问题,例如更改代码行。

  正如您所说的那样,在开发环境中,他跳过并直接通过ESM加载了文件。

  基于WebPack开发环境的逻辑逻辑

  这样的项目可能会遇到此类问题

  Vite基于ESM加载逻辑

  显然,Vite在开发启动时间领先于Vue-CLI。

  那么Vite做了什么?

  ES 2015在语言层面上实现了模块功能,并且可以易于实现,该功能可以替换commonJ和AMD规格,并成为服务器和浏览器中常用的解决方案。

  浏览器将自动启动请求以请求test.js文件。

  但是,ESM不支持“裸”模块的引入,并将直接报告错误。例如

  Vite将在当前服务中检测.js文件,例如,重写其路径。

  Vite用于解析无关的语法,并通过更换将“ SAN”替换为“/@模块/SAN”。

  KOA-Server

  Vite通过KOA启动了HTTP服务,并通过添加插件来对不同类型的文件进行不同的逻辑处理。静态文件处理使用KOA静态

  您需要首先分析导入语法以替换引入的软件包路径。我们上面还提到,Vite使用ES模块-LEXER来解析导入语法

  中间件ServerPluginModulewrite

  ModulereWritePlugin

  处理/@模块/xxx/路径,返回右边

  ModuleresolvePlugin

  vuecompileplugin

  参考资料:

  Vite中国文档

  Vite2.0升级内容

  KOA2-MIDDLEWARE原理

  NPM初始解释

  ES模块-Lexer

  Vite Github

  KOA

  ESM工作原理

  ESM兼容性

  原始:https://juejin.cn/post/709637428593215012