当你检出一个分支并使用eslint对代码进行了lint处理,并使用--cache
标志,这将生成一个.eslintcache
文件。由于.eslintcache
被列在我的.gitignore
中,所以当你切换到另一个分支并再次进行lint处理时,缓存文件已经存在。理论上,eslint会重复使用它,但我们不能假设之前的缓存文件是有效的。因此,在切换分支时,我们应该删除.eslintcache
文件吗?
在这个问题上找不到任何建议,但是将 .eslintcache 添加到 .gitignore 比每次手动删除更方便。
.gitignore
中,但我认为问题更多地是在问“是什么使缓存无效?”因为当分支切换时,代码会发生变化,因此lint缓存可能会过时。 - Edward Thomson这可能有点猜测 - 但我相信当您切换分支时,将.eslintcache
保留在项目中是没有问题的。
对于.eslintcache
中的单个文件,它将具有类似以下信息:
"/path/to/project/src/components/App.js": "6",
...
{
"size": 538,
"mtime": 1644596159286,
"results": "439",
"hashOfConfig": "434"
},
...
{
"filePath": "876",
"messages": "877",
"errorCount": 0,
"fatalErrorCount": 0,
"warningCount": 0,
"fixableErrorCount": 0,
"fixableWarningCount": 0
},
...
"/path/to/project/src/components/App.js",
[],
所以缓存中有一个修改时间 - 我假设如果您切换分支,修改时间将会改变,这应该会导致缓存检测到您的分支中拉取的新文件需要重新进行Lint。
我还猜想,缓存会删除任何不存在的文件,并添加任何新文件。
.eslintcache
文件。ESLint本身在缓存失效方面做得很好,而且你也会在CI中获得缓存的好处。 - IanVS