前几章介绍了一些基础内容,但是其中关于rollup的版本似乎已经有点过时了。此外,现在将allinone(aio)命名为umd会更好一些。
中间的章节讲述了在github上的一些操作以及关于安全和维护方面的介绍。这些部分可以很快地读完。在第八章中,介绍了抽象标准库的实现,其中通过类似于redux enhancer的方式为工具函数提供了强大的扩展能力;此外,还介绍了多种clone实现方法以及解决递归限制和循环引用问题的方法。(我直接跳过了相等性这一小结......)
第九章介绍了如何开发一个类似create-vue这样的create命令行工具。同时,还学习了与npmlink和npmpublish相关的内容。
第十章介绍了工具库的开发以及eslint-plugin的开发,使用eslint的AST创建自己的规则,并使用typescript的createSourceFile构建AST来分析工具函数的使用情况。
第十一章介绍了模板库的构建,其中使用了monorepo:lerna集成了有用的命令,比如同步发版等等,同时还使用了yarnworkspaces,yarn的策略是将所有的node_modules hoist到项目根目录中。对于JIT(Just-in-time)技术的实现,当我们从字符串构建render函数时,它是在浏览器中执行的。因此,又介绍了pre-compile技术,以便在浏览器中不必拼接fnBodyStr字符串。主要的难点在于render函数接受的data,在模板中使用的是data的key,需要区分这些key是data属性还是箭头函数中的参数,以及如何避免获取到全局window上的同名属性。因此,我们需要结合esprima和estraverse完成操作。此外,还介绍了如何通过webpack loader和vscode插件对.tmpl后缀文件进行语法高亮。
读完本书之后,基本可以明白现在前端工具链中的大部分基本操作。
相关推荐
© 2023-2025 百科书库. All Rights Reserved.
发表评价