JS修改依赖代码逻辑
在开发的过程中,有一些依赖中有一些 bug 或者某一点点的逻辑不是我们想要的,这个时候我们需要去修改他的逻辑。在某些语言中这样的操作很麻烦的,需要把他的代码找到,然后修改重新打包,把依赖换成重新打包后的包。
而在 js 中是很容易的。可以把修改逻辑放到postinstall
中,这样即使是团队开发,大家也都可以共享这段逻辑。而patch-package就是一个类似这样的工具,他可以更好,更规范话的帮助我们修改依赖中的逻辑
实战
我的博客是使用butterfly
作为博客主题gitalk
作为评论工具。在butterfly
主题中,他的内嵌的gitalk
集成逻辑是使用 url 的 path 作为gitalk
的 id,而最近我正在优化博客的 SEO,所以文章的 url path 可能会改变,这样文章变了,评论就都没了,这并不是我想要的。我想修改这段逻辑让他变成使用 path 的最后一段作为 id,而我保证无论 url 怎么变,最后一段 path 不变。
安装patch-package
1 | npm i patch-package --save-dev |
添加postinstall
脚本,以便后面我换电脑或者我的 CI 机器人可以自动执行我的修改逻辑
1 | { |
直接进入node_modeles
中修改逻辑
原来的代码如下
1 | function initGitalk () { |
修改后的代码如下
1 | function initGitalk () { |
执行npx patch-package hexo-theme-butterfly
可以看到他生成了一个hexo-theme-butterfly+4.3.1.patch
的文件,里面记录了上述修改。
这样就完成了修改。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 北梦的个人博客!
评论