内容简介 · · · · · ·
开发JavaScript库是入门前端领域的重要一步。《现代JavaScript库开发:原理、技术与实战》旨在帮助前端开发者掌握现代JavaScript库的开发技术,让每个人都可以开源自己的现代JavaScript库。本书系统介绍了现代JavaScript库开发涉及的技术、原理和最佳实践,以及将库开源后如何做好维护工作。在最佳实战部分,本书选取了9个典型库作为案例,展示开发流程,代码清晰、完善。
《现代JavaScript库开发:原理、技术与实战》既适合对现代JavaScript库开发及开源感兴趣的前端开发者阅读,也适合想要学习前端项目开发技术的初学者阅读。
作者简介 · · · · · ·
颜海镜,知名技术博主,微信公众号“颜海镜”作者。拥有十年以上开源经验,在GitHub上拥有关注者(followers)5100余名,维护了jsmini、jslib-base、template.js、zepto.fullpage等多个开源项目,获得了6500个以上的GitHub Star。具有多年一线大厂从业经验,曾先后就职于金山、百度、美团等知名企业,负责前端开发工作。著有《React状态管理与同构实战》。
侯策,就职于某内容社区类互联网上市公司,具有多年海内外工作经验,曾先后就职于法国ENGIE集团、Google、百度等知名企业。擅长前端工程化体系搭建及基础建设架构设计。著有《React状态管理与同构实践》《前端开发核心知识进阶:从夯实基础到突破瓶颈》《前端架构师:基础建设与架构设计思想》等多部技术图书。
目录 · · · · · ·
1.1 如何开始 1
1.2 编写代码 2
1.3 本章小结 5
第2章 构建 6
2.1 模块化解析 6
2.1.1 什么是模块 7
2.1.2 原始模块 7
2.1.3 AMD 8
2.1.4 CommonJS 9
2.1.5 UMD 9
2.1.6 ES Module 10
2.2 技术体系解析 11
2.2.1 传统体系 12
2.2.2 Node.js体系 13
2.2.3 工具化体系 14
2.3 打包方案 17
2.3.1 选择打包工具 18
2.3.2 打包步骤 19
2.3.3 添加banner 23
2.3.4 按需加载 24
2.4 兼容方案 26
2.4.1 确定兼容环境 26
2.4.2 ECMAScript 5兼容方案 28
2.4.3 ECMAScript 2015兼容方案 30
2.5 完整方案 33
2.6 本章小结 35
第3章 测试 36
3.1 第一个单元测试 36
3.2 设计测试用例 39
3.2.1 设计思路 39
3.2.2 编写代码 40
3.3 验证测试覆盖率 42
3.3.1 代码覆盖率 42
3.3.2 源代码覆盖率 44
3.3.3 校验覆盖率 46
3.4 浏览器环境测试 48
3.4.1 模拟浏览器环境 48
3.4.2 真实浏览器测试 49
3.4.3 自动化测试 51
3.5 本章小结 53
第4章 开源 54
4.1 选择开源协议 54
4.2 完善文档 56
4.2.1 README 57
4.2.2 待办清单 59
4.2.3 变更日志 59
4.2.4 API文档 60
4.3 发布 61
4.3.1 发布到GitHub上 61
4.3.2 发布到npm上 62
4.3.3 下载安装包 66
4.4 统计数据 66
4.4.1 GitHub数据 66
4.4.2 npm数据 67
4.4.3 自定义数据 69
4.5 本章小结 70
第5章 维护 71
5.1 社区协作 71
5.1.1 社区反馈 72
5.1.2 社区协作 76
5.1.3 社区运营 77
5.2 规范先行 79
5.2.1 编辑器 79
5.2.2 格式化 82
5.2.3 代码Lint 88
5.2.4 提交信息 96
5.3 持续集成 102
5.3.1 GitHub Actions 103
5.3.2 CircleCI 111
5.3.3 Travis CI 114
5.4 分支模型 115
5.4.1 主分支 115
5.4.2 功能分支 116
5.4.3 故障分支 119
5.4.4 Pull request 120
5.4.5 标签与历史 121
5.5 本章小结 123
第6章 设计更好的JavaScript库 124
6.1 设计更好的函数 124
6.1.1 函数命名 124
6.1.2 参数个数 125
6.1.3 可选参数 126
6.1.4 返回值 126
6.2 提高健壮性 127
6.2.1 参数防御 127
6.2.2 副作用处理 129
6.2.3 异常捕获 130
6.3 解决浏览器兼容性问题 131
6.3.1 String 132
6.3.2 Array 132
6.3.3 Object 134
6.4 支持TypeScript 134
6.5 本章小结 137
第7章 安全防护 138
7.1 防护意外 138
7.1.1 最小功能设计 138
7.1.2 最小参数设计 140
7.1.3 冻结对象 141
7.2 避免原型入侵 142
7.2.1 面向对象基础知识 142
7.2.2 原型之路 143
7.2.3 原型入侵 145
7.3 原型污染事件 147
7.3.1 漏洞原因 148
7.3.2 详解原型污染 148
7.3.3 防范原型污染 151
7.3.4 JSON.parse补充 152
7.4 依赖的安全性问题 152
7.4.1 库的选择 153
7.4.2 正确区分依赖 154
7.4.3 版本问题 156
7.4.4 依赖过期 157
7.4.5 安全检查 158
7.5 本章小结 160
第8章 抽象标准库 161
8.1 类型判断 161
8.1.1 背景知识 161
8.1.2 抽象库 166
8.2 函数工具 169
8.2.1 once 170
8.2.2 curry 170
8.2.3 pipe 171
8.2.4 compose 172
8.3 数据拷贝 174
8.3.1 背景知识 174
8.3.2 最简单的深拷贝 176
8.3.3 一行代码的深拷贝 178
8.3.4 破解递归爆栈 178
8.3.5 破解循环引用 180
8.3.6 性能对比 183
8.4 相等性判断 187
8.4.1 背景知识 187
8.4.2 抽象库 195
8.5 参数扩展 200
8.5.1 背景知识 200
8.5.2 抽象库 202
8.6 深层数据 205
8.6.1 背景知识 205
8.6.2 抽象库 209
8.7 本章小结 214
第9章 命令行工具 215
9.1 系统设计 215
9.2 标准命令行工具 217
9.3 交互界面 225
9.4 初始化功能 234
9.4.1 代码架构 236
9.4.2 公共逻辑 237
9.4.3 模块设计 242
9.5 命令行颜色 249
9.6 进度条 251
9.7 发布 256
9.8 本章小结 257
第10章 工具库实战 258
10.1 问题背景 258
10.2 代码实现 260
10.2.1 字符串操作 260
10.2.2 数组操作 262
10.2.3 对象操作 265
10.2.4 URL参数处理 268
10.3 搭建文档 269
10.4 ESLint插件 274
10.4.1 type-typeof-limit 276
10.4.2 type-instanceof-limit 281
10.4.3 no-same-function 282
10.4.4 recommended 284
10.4.5 发布 285
10.5 数据统计 285
10.5.1 统计接入项目 285
10.5.2 下载量 286
10.5.3 包和函数被引用的次数 287
10.6 本章小结 292
第11章 前端模板库实战 293
11.1 系统搭建 293
11.1.1 背景知识 293
11.1.2 搭建项目 295
11.2 解析器 300
11.3 即时编译器 305
11.4 预编译器 309
11.5 webpack插件 317
11.6 VS Code插件 323
11.7 发布 329
11.8 本章小结 330
第12章 未来之路 331
12.1 全景图 331
12.1.1 知识全景图 331
12.1.2 技术全景图 332
12.2 下一代技术 333
12.2.1 TypeScript 333
12.2.2 Deno 334
12.2.3 SWC 334
12.2.4 esbuild 335
12.2.5 Vite 335
12.3 本章小结 336
· · · · · · (收起)
喜欢读"现代JavaScript库开发:原理、技术与实战"的人也喜欢的电子书 · · · · · ·
喜欢读"现代JavaScript库开发:原理、技术与实战"的人也喜欢 · · · · · ·
-
- React设计原理 5.5
-
- TypeScript编程 8.5
-
- Vue.js设计与实现 9.5
-
- Web性能实战 8.0
-
- 前端跨界开发指南 7.6
-
- CSS世界 7.7
-
- 深入理解ES6 9.2
-
- 前端工程化:体系设计与实践 5.9
-
- ECMAScript6入门 8.3
现代JavaScript库开发:原理、技术与实战的书评 · · · · · · ( 全部 3 条 )

实用性很高,如果使用 esmodule 的语法就更好了
这篇书评可能有关键情节透露
前几章都是些基础,rollup 的版本似乎有点过时了。以及 all in one (aio) 现在是不是叫 umd 更好。。。 中间讲了 github 上的一些操作以及安全&维护介绍,可以很快读过。ch08 介绍的抽象标准库中用学习到的是类似 redux enhancer 的方式给自己的工具函数很强的扩展行为,... (展开)
好就一个字,我只说一次
> 更多书评 3篇
论坛 · · · · · ·
在这本书的论坛里发言以下书单推荐 · · · · · · ( 全部 )
- 优质的在读的仅纸质版图书 (豆友B-1hraWFjc)
- 仅纸质版本 (豆友B-1hraWFjc)
- 计算机与软件 (大汪)
- 前端开发阅读池 (湾仔王二)
- 前端开发 (千古壹号)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有171人想读,手里有一本闲着?
订阅关于现代JavaScript库开发:原理、技术与实战的评论:
feed: rss 2.0
1 有用 Snow 2023-03-17 10:04:38 中国香港
对于如何搭建一个标准的开源前端代码库讲解较为全面。 特别是围绕基础库的搭建,以及开源代码库的基础设施的搭建。 如果作者能够在书中添加更多的扩展阅读,从而引导读者做进一步进阶的学习,或许会更加完美。 但即便如此,也是非常推荐一读的,包括基础库的搭建以及开源代码库基础设施的建设。
1 有用 Tars 2023-03-13 22:09:37 重庆
非常攒的一本书。经常阅读技术类书籍的人都知道,国内的技术类书籍都是东抄西抄,有的都是直接粗制滥造翻译海外的书籍。常常都非常让人失望,所以个人更偏向于直接阅读英文版的技术书籍,对国内的技术书籍翻阅非常慎重。但,这本书让人眼前一亮。作者在各个社区非常活跃,他写的技术类文章也都是娓娓道来,一改中文技术书籍浮躁的氛围。这本书延续了作者写作的风格,由浅入深,拨云见雾,引人入胜,娓娓道来。私下并不认识作者,但... 非常攒的一本书。经常阅读技术类书籍的人都知道,国内的技术类书籍都是东抄西抄,有的都是直接粗制滥造翻译海外的书籍。常常都非常让人失望,所以个人更偏向于直接阅读英文版的技术书籍,对国内的技术书籍翻阅非常慎重。但,这本书让人眼前一亮。作者在各个社区非常活跃,他写的技术类文章也都是娓娓道来,一改中文技术书籍浮躁的氛围。这本书延续了作者写作的风格,由浅入深,拨云见雾,引人入胜,娓娓道来。私下并不认识作者,但看他的写作风格,绝对是个做事认真、仔细,好不浮躁的一个技术极客。作者讲这本书凝结了他10年的技术实践,非常推荐给有2年以上开发经验的朋友。最后,再次赞一个! (展开)
1 有用 影迷甲 2023-10-20 13:10:31 四川
手把手全方位地教你怎么开发前端库,有少许笔误,但瑕不掩瑜
2 有用 天街下的井盖 2024-03-16 19:44:19 中国香港
从另外一个角度描绘前端,想做大全栈之前很有必要看一下这本书
2 有用 thatshinji 2023-01-30 22:57:03 上海
终于把这本书看完了,内容量大管饱,非常贴合书名副标题 原理 技术和实战,书里更多是实战内容。完整的搭建一个工具库,包括不限于,lint,test,ci等等…让开发者可以完整熟悉一下整个开源流程。内容很扎实,跟着敲一边会非常有用。总的来说是一本系统的实战书籍,5星好评。2023年一开头就读到了好书。