- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
技术要点:Rollup
前言
工欲善其事,必先利其器。做好一个项目前期准备工作很重要,前期准备无非就是
合理规划项目结构、按需编写构建代码、批量创建文件、按需封装工具函数等,
而按需封装工具函数是项目基础的重中之重,是很有必要提前规划的。
这些经常重复使用的工具函数,包括但不限于浏览器类型、格式时间差、URL参数反
序列化、过滤XSS等。为了避免应用开发时重复的粘贴操作带来不必要的麻
烦,有些开发者都会将这些工具函数根据功能划分并统一封装,再发布到Npm公有仓
库。每次使用时直接安装,提升开发效率,将时间用在正确的事情中。
webpack长期霸占打包领域的,得以其强大的生态系统,很多前端应
用都基于webpack打包,因此很多类库在早期也选择webpack作为打包工具。随着
前端技术的大力发展,近几年也涌现出像rollup、esbuild和parcel这样的优秀
打包工具,每个工具都具备自己的特色且在某些应用场景占据一定的优势,因此
webpack的地位也受到,形成一超多强的局面。
虽然webpack蚕食大量打包市场份额,但也不是所有情况都适用webpack。在某些
应用场景使用webpack打包代码也可能很多问题,例如大量无用代码,随
着项目体积增大导致打包速度过慢、打包时间过长和打包体积过大。
基于上述,现在很多类库都会选择rollup打包代码,这些类库包括但不限于组
件库与工具库,其共是包括以JS为主的代码,因此资源类型不会像应用那样复
杂,所以对于单一类型单能的项目,使用rollup打包代码会更好,而rollup
也是为JS类库打包而生。本章将带领你基于Rollup类库基建模板,通过了解
rollup打包思想,一步一步上手rollup,完成一个通用工具库的前端工程化模
板。
在此提个醒,本课程的是前端工程化,因此不会展开编写业务代码,只会集中篇幅讲述前端工程化相关代
背景:背景:Rollup
rollup是一个JS模块打包器,可将小块代码编译为大块复杂代码。与webpack偏
向于应用打包的定位不同,rollup更专注于类库打包。像常见前端框架react与
vue,其源码都是基于rollup打包的。
为何都是打包,而像react与vue都优先选择rollup?总体来说webpack与
rollup都可基于自己特性在不同应用场景发布自身的优势作用。
webpack内置的分割代码、按需加载、HRM等特性在打包应用时有着的优势,
而rollup并不支持这些功能,因此在打包应用时需配合很多第插件才能完成,
而本身rollup的生态系统并不强大,第插件不齐全,部分插件也得不到很好的
,因此rollup无法支撑一个应用的打包功能。
但rollup也并不是一无是处,其内置的ES6解析、摇树优化、作用提升等特性在
打包类库时有些的优势,若你的项目是一个组件库或工具库,而这些单一类型
单能的项目只需输出一个或多个不同规范的bundle文件供其他应用,那使
用rollup再也适合不过了。
特性
因为rollup配置简洁、性能到位和功能专一的特性,webpack在v2也开始借鉴摇
树优化、作用提升等先进特性。
摇树优化
rollup在普通情况下,必须使用ESM编码,而不是以前的模块规范CJS或AMD。
在使用ESM编码的基础上,rollup会静态分析代码中的import并将删除所有未实
际使用的代码。这允许架构在现有模块中,而不会增加额外依赖或项目体积。
因为rollup只最基本最精简的代码,所以可生成轻量快速低复杂度的类库。这
种基于显式import/export的方式,远比在编译后bundle文件中简单地运行压
缩程序自动检测未使用的变量更有效。
摇树优化就是TreeShaking,可查看《TreeShaking实现原理》好好了解其原理,在
此不深入讲述了。
模块兼容
虽然rollup在普通情况下必须使用ESM编码,但很多古老的Npm模块都是基于CJS
编码,贸贸然这些Npm模块肯定会在打包流程中报错,因此推荐使用
@rollup/plugin-commonjs解决这些问题。
使用
rol
您可能关注的文档
- 二年级数学进位加法教学案例.pdf
- 维京时代术语与词汇汇编.pdf
- Logix5000中整数类型转换与通信优化方法.pdf
- 商务添翼产品扩展属性编码及订购规则.pdf
- 税务师考试财务与会计基础精讲:第八章流动资产一.pdf
- 国际旅行常识快速检测题.pdf
- 欧妮儿摄影与滴滴打车积分商城合作书.pdf
- 夜航遐想与海边人间.pdf
- 渤海商品功能与交易机制.pdf
- 汽车美容护理技术与操作.pdf
- 实验室危废随意倾倒查处规范.ppt
- 实验室危废废液处理设施规范.ppt
- 实验室危废处置应急管理规范.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第20课时 中国的地理差异.ppt
- 初中地理中考总复习精品教学课件课堂讲本 基础梳理篇 主题10 中国的地理差异 第21课时 北方地区.ppt
- 危险废物处置人员防护培训办法.ppt
- 危险废物处置隐患排查技术指南.ppt
- 2026部编版小学数学二年级下册期末综合学业能力测试试卷(3套含答案解析).docx
- 危险废物处置违法案例分析汇编.ppt
- 2026部编版小学数学一年级下册期末综合学业能力测试试卷3套精选(含答案解析).docx
最近下载
- 《土工试验方法标准》GBT 50123-2019专家导读.pdf VIP
- 24春国开《EXCEL在财务中的应用》历届期末考试题及答案.pdf VIP
- 民办非企业单位内部管理制度汇编.doc VIP
- GB∕T33000-2025《大中型企业安全生产标准化管理体系要求》审核(评审)指导之10现场管理:“10.4异常处置”要素提问、专业解答和证实(雷泽佳编制2025A0).pdf VIP
- 电费补助领取流程.docx VIP
- 广日电梯G·Exc电气原理图K3800396.pdf VIP
- 项目管理的8个表格-V3.0.xlsx VIP
- GB∕T33000-2025《大中型企业安全生产标准化管理体系要求》审核(评审)指导之8:”8事故隐患排查治理”要素提问、专业解答和证实(雷泽佳编制2025A0).pdf VIP
- 多渠道营销活动推广计划表.doc VIP
- 译林版版英语六年级上册期末复习培优试卷测试题(带答案).pdf VIP
原创力文档


文档评论(0)