引用原始作者: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