修理 hexo-douban
在新博客使用了 hexo-douban 这个库,想展示自己的豆瓣阅读、观影等等。但是生成的豆瓣页在 Fluid 主题下图片显示有点问题,需要手动改 css 来解决;同时装了 bluebird 又检测到几处 TypeError,需要修改 js 源码。
原作者已经没有精力维护这个库了,npm 肯定不会更新,而我又依赖 GitHub Actions 来部署。如何应用自己的手动修改是个问题。
使用 patch-package 给包打补丁
这里推荐个小工具 patch-package。就是给依赖库打个补丁,不影响依赖库正常升级,只是涉及到你修改的内容会用你的补丁替换。
直接在依赖库中编辑修复有 bug 的文件,然后该工具会生成个临时文件夹存放对应版本的依赖库,然后和你修改的依赖库目录去进行比较,生成一个 patch 文件,下次在执行 npm install 时,该工具会将该 patch 合进该依赖库去。
具体操作步骤
-
项目的根目录
package.json下,添加npm postinstall, 以便每次执行npm install时能合进所有的patch文件:"scripts": { ... + "postinstall": "patch-package" ... } -
安装
patch-packagenpm i patch-package --save -
编辑依赖库
<package-name>, 并执行下面命令生成 patch 文件npx patch-package <package-name> -
再执行以下命令,你就发现最新安装的包已经合进了你刚刚修改的 patch 文件了
npm install