在用Typescript编写的项目中,我想开始对所有函数的返回类型和参数类型强制执行类型注释。为此,我创建了一个单独的tslint配置,该配置扩展了我的主配置并在此之上添加了此规则。我正在通过husky和lint-staged使用此扩展配置运行tslint,以在提交更改之前检查所有已暂存的文件。问题是:如果我对其中一个旧文件(其中一些文件很大)进行了更改,则lint stage也会检查该文件,除非我在所有文件中键入所有功能的注释,否则我不会提交。但这是很多工作,我只想在新文件上执行。有没有一种方法可以将暂存文件筛选为仅包含此提交中添加的文件?
答案 0 :(得分:0)
如果使用目录结构将“新”代码与“旧”代码分开,则可以执行此操作。在那之后,在lint阶段的配置中只有2种不同的glob模式。
这是我可以想到的最简单的方法,它可以与其他代码质量工具(例如ESLint)一起使用,因为您可以将.eslintrc
放入子目录中。
答案 1 :(得分:0)
lint-staged 使用另一个名为staged-git-files(sgf)的库在git commit之前检索 staged 的文件列表。
以下是sgf使用的一些状态代码。
lint-staged 将状态代码 ACM 传递给sgf程序包。
sgf.cwd = gitDir
*return pify(sgf)('ACM').then(files => {*
/* files is an Object{ filename: String, status: String } */
const filenames = files.map(file => file.filename)
如果您只想lint-staged
检索添加的文件,则可以派生回购并将 AC 传递给sgf。如果我们有一种配置方法,那将是理想的。我在存储库中提出了issue。希望他们能解决