使用Husky / lint阶段的挂钩时是否可以排除/忽略文件?
浏览文档atm,但没有运气找到任何东西。
希望有类似
的东西/*ignore*/
我可以添加的标签。
使绒毛暂存忽略某些引起格式问题的文件。
任何对此表示赞赏的想法:)
答案 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)
可以通过三种方式修复:
答案 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文件匹配。