沙哑/棉绒演出是否可以排除/忽略文件?

时间:2019-04-01 14:20:20

标签: husky git-husky lint-staged

使用Husky / lint阶段的挂钩时是否可以排除/忽略文件?

浏览文档atm,但没有运气找到任何东西。

希望有类似

的东西
/*ignore*/
我可以添加的

标签。

使绒毛暂存忽略某些引起格式问题的文件。

任何对此表示赞赏的想法:)

5 个答案:

答案 0 :(得分:2)

如果仍然有人在看,请看看这个https://github.com/okonet/lint-staged#filtering-files的例子。

过滤文件

Linter命令可处理所有已暂存文件的子集,该文件由全局模式定义。 “ lint-staged”使用micromatch来匹配具有以下规则的文件:

  • 如果全局模式不包含斜杠(/),则将启用micromatch的matchBase选项,因此,全局匹配的文件名与目录无关:
    • "*.js" 将匹配所有JS文件,例如/test.js/foo/bar/test.js
    • "!(*test).js" 。将匹配所有JS文件,但以test.js结尾的文件除外,因此foo.js而不是foo.test.js
  • 如果全局模式确实包含斜杠(/),则它也将匹配路径:
    • "./*.js" 将匹配git repo根目录中的所有JS文件,因此/test.js但不匹配/foo/bar/test.js
    • "foo/**/\*.js" 将匹配/foo目录中的所有JS文件,因此/foo/bar/test.js但不匹配/test.js

答案 1 :(得分:1)

在package.json中配置lint-staged时,或者如果使用任何其他IDE,则为了通过lint-Staged和husky钩子忽略/排除文件,可以在lint-staged中添加“ ignore”键对象以使其忽略您要忽略的任何程序包或文件。使用以下可扩展语法:

{
  "lint-staged": {
    "linters": {
      "src/**/*.js": ["formatter --write", "git add"],
    },
    "ignore": ["node_modules", "dist", "package-lock.json"]  }
}

只需将目标模式添加到“ linters”对象以及您先前可能已添加到.prettierignore的所有被忽略文件中,即可将lint-Staged对象的键“忽略”。然后你去了!

答案 2 :(得分:1)

可以通过三种方式修复:

  • .lintstagedrc.js
  • .prettierignore
  • lint-staged.config.js

更多信息:https://github.com/okonet/lint-staged/issues/797

答案 3 :(得分:0)

最终添加

PWM(Pin, Channel)

文件。

不理想,但似乎可以完成工作。

答案 4 :(得分:0)

因此,我整天都在努力寻找答案,并查看所有论坛的建议,他们使用minimatch进行glob检查,这可能对较旧的版本是正确的,但对于新版本则使用micromatch,解决此问题,我们可以使用其模式排除某些目录 因此,在您的.lintstagedrc中,您可以添加以下模式以避免某些文件夹

{
  "*.{json,md,html,scss}": ["prettier --write", "git add"],
  ["**/!(folder1|folder2)/*.ts"]: ["tslint --project tsconfig.json -c tslint.commit.json --fix", "prettier --write", "git add"]
}

因此,这里的glob是一个实际的数组,请确保不要在字符串中传递此数组,否则它也不会识别模式,不包括 ** / *。ts原因是如果在模式中找到/,则lint-staged会自动将其转换为matchBase比较,这样包括在内的内容也将与您的folder1 | folder2文件匹配。