lint-staged 在提交时生成新的 .eslintcache 文件

lint-staged generates new .eslintcache file on commit

我正在通过 npm init vue@latest 和 select everything(带有 Prettier 的 Eslint)创建一个新的 Vue 项目

我正在使用以下设置

我通过 npx mrm@2 lint-staged 设置了 lint-staged。出于测试目的,我在 src 目录

中添加了一个新文件
// calc.js

function 
add
(numOne, 
  numTwo) {
  return numOne + 
  
              numTwo;
}

提交新文件时,linter 会按预期修复代码样式。但之后我必须手动删除生成的 .eslintcache 文件。

较早的帖子说我应该添加

*.eslintcache

.gitignore 文件。但是我将生成的 .gitignore 文件与 Vue CLI 生成的文件进行了比较,两者都没有这一行。使用 Vue CLI 时,缓存文件不会出现。

还有其他解决方案吗?或者我遗漏了什么?

.eslintcache 文件是从 ESLint 的 --cache flag 创建的,它包含在 lint-staged 的默认 linter 命令中:

// package.json
{
  "lint-staged": {                        
    "*.{vue,js,jsx,cjs,mjs}": "eslint --cache --fix",
    "*.{js,css,md}": "prettier --write"
  }
}

您可以删除 --cache 标志:

// package.json
{
  "lint-staged": {
    "*.{vue,js,jsx,cjs,mjs}": "eslint --fix",
    "*.{js,css,md}": "prettier --write"
  }
}

...或使用 --cache-location flag 设置缓存文件位置(例如,指定 node_modules/.cache):

// package.json
{
  "lint-staged": {                                          
    "*.{vue,js,jsx,cjs,mjs}": "eslint --cache --fix --cache-location ./node_modules/.cache/.eslintcache",
    "*.{js,css,md}": "prettier --write"
  }
}