打包构建
文章平均质量分 89
关于打包构建的一些思考🤔️
F班的小夏同学
理想主义青年永远不会被现实招安
展开
-
依赖预构建与静态资源处理
vite是一个基于浏览器原生ES-Module的前端构建工具。当你首次启动vite的时候,vite会在本地加载你的站点之前预构建项目依赖。依赖预构建仅仅适用于开发模式,并使用esbuild将依赖项转换为ES模块。预构建的内容是什么?一个项目里,存在很多模块,并不是所有的模块都会被预构建,只有裸依赖(bare import)会执行依赖预构建。用名称去访问的模块是裸依赖,用路径去访问的模块不是Node.js定义了bare import的寻址机制——在当前目录下的node_modules下寻找。原创 2023-08-20 18:14:30 · 281 阅读 · 0 评论 -
为什么ESbuilld打包构建比较快?
并且Go语言多个线程之间还能共享相同的内存空间,而javascript的每个线程都有自己的内存堆,这意味着Go中多个处理单元,例如解释资源A的线程,可以直接读取资源B线程的运行结果,而js中相同的操作需要调用通讯接口woker.postMessage在线程间复制数据。也就意味着,Go语言编写的程序比js少了一个动态解释的过程。Rollup/Webpack并没有使用WebWoker提供的多线程能力,而ESbuild的实现尽可能的使用各个CPU核,特别是打包过程的解析/代码生成阶段已经实现完全并行的处理。原创 2023-08-20 18:36:20 · 613 阅读 · 0 评论 -
Rollup看这一篇就够了
rollup官方有这样一句话:Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library(库) 或应用程序。这个其实是所有打包工具的功能,但是Rollup有什么不一样的呢?从他的应用场景来看,用到RollUp打包的都有vue/ vuex/ vue-router,对比webpack来看,Element UI是使用webpack作为打包的,相对来说,Rollup更擅长做一些js函数库、工具库的打包,但是Webpack更擅长处理UI库。原创 2023-08-20 23:58:37 · 2050 阅读 · 0 评论 -
vite原理
目前绝大多数现代浏览器都已经支持ES module了,浏览器遇到在遇到内部的import引用的时候,会自动发起http请求,去加载对应的模块,vite也是借助了浏览器的这个特性,只接受ESM规范,在代码中不可以使用CommonJS,那么这个时候就不需要再去遍历依赖文件夹了,直接启动开发服务器,然后在浏览器请求依赖的时候,请求到哪个依赖,再根据需要对模块进行实时编译。Vite也是这样判断的。import请求,返回解析后的代码,得到的是一个可访问的url,但是public里的文件是不需要的,可以直接拿到图片。原创 2023-12-16 16:40:52 · 656 阅读 · 0 评论