问题及解决方案
在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,待跟进
执行
git stash clear
也无法清除backup
缓存的原因
lint-staged从v10开始支持基于git stash create和git stash store配合实现的backup,并在内部的gitworkflow中控制backup的更新。在.lintstagedrc.js配置的自定义脚本更新后,并未更新backup,导致问题出现。