173 - 《前端架构师阅读笔记》
本书地址是,https://book.douban.com/subject/36049173/。上周在 Yingci 的简报中看到,看目录还不错就买了本,都是前端工程化和架构相关的内容,和我的经验比较契合,看起来很快,利用周一和周二两个中午快速翻完。
作者是「候策」,之前没了解过,目前在百度?除了这本书,还写过《前端开发核心知识进阶:从夯实基础到突破瓶颈》和《React状态管理与同构实战》。
说下好的和不好的。好的地方是目录质量高,内容比较全,能感受到作者的功底非常不错,有不少点是我之前也没探究过的,比如 npm 极致、axios 设计等。不好的点是,1)代码量有些大,有些地方直接好几页的代码,2)有较多「盘古之白」的错误用法,看的时候容易出戏,3)有些内容过时,比如 Yarn 感觉没必要学,4)不少内容讲地不够深,感觉刚进入状态,就没了。
此外,在书里发现我写的 babel-plugin-import 解读(108 页)和 umi(204页)。
以下是我在看的时候做的一些摘录,
1、npm 安装机制与 Ruby Gem 和 Python Pip 都不同,后两者是全局安装,前者优先本地安装,所有只有 Node 社区才有 node_modules 黑洞的抱怨。这种方式的优点是每个项目各成体系,互不影响;缺点就是占硬盘尺寸。
2、npm init 是可以自定义的,通过 npm config set init-module ~/.npm-init.js
来自定义脚本,通过 npm config set
init.author.name、init.author.email、init.author.url 和 init.license 来自定义其他字段。
3、npx 的运行机制。比如 npx create-react-app,每次运行时会将目标包下载到临时文件,同时使用后会删除。所以每次执行 npx 都会安装新的。
4、私有 npm 镜像方案除了 cnpm,还有 nexus 和 verdaccio。
5、synp 可以在 yarn.lock 和 package-lock.json 之间来回转换。
6、npm ci 和 npm install 类似,区别是 npm ci 要求项目中必须有 package-lock.json,同时他会完全根据 lock 文件仅依赖安装,如果和 package.json 中的文件有冲突,会报错。同时顾名思义,npm ci 是在 ci 环境中推荐使用的 npm install。
7、lock 文件要不要提交到仓库?书中解释的几点我是有不同看法的。1)npm 包提不提 lock 文件应该无所谓,因