lint-staged自定义脚本缓存问题

267 阅读1分钟

问题及解决方案

在lint-staged的配置文件.lintstagedrc.js配置自定义脚本并调试时,shell执行npx lint-staged时会有缓存的情况,在执行命令时.lintstagedrc.js中依赖的脚本会被缓存,脚本的变动不会实时更新,可通过以下命令强制使用最新的脚本:

npx lint-staged --no-stash

通过 npx lint-staged --help可查看该option的具体用法。 注意:--no-stash只作用于当前命令

现象

stash中并未找到相关backup,但缓存仍生效,可能存在幽灵缓存或者不允许人工干预清除backup,待跟进

image.png  执行 git stash clear 也无法清除backup

缓存的原因

lint-staged从v10开始支持基于git stash create和git stash store配合实现的backup,并在内部的gitworkflow中控制backup的更新。在.lintstagedrc.js配置的自定义脚本更新后,并未更新backup,导致问题出现。

create backup

github.com/lint-staged…

image.png

cleanup backup

github.com/lint-staged…

image.png