首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法只在新文件上运行lint-staged (那些之前没有被git跟踪的文件)?

有没有办法只在新文件上运行lint-staged (那些之前没有被git跟踪的文件)?
EN

Stack Overflow用户
提问于 2019-02-28 17:00:07
回答 2查看 1.2K关注 0票数 1

在我用Typescript编写的项目中,我想开始对所有函数的返回类型和参数类型执行类型注释。为此,我创建了一个单独的tslint配置,它扩展了我的主配置,并在此基础上添加了此规则。我通过这个扩展配置运行tslint,并在提交更改之前检查所有暂存的文件。问题是:如果我更改了一个旧文件(其中一些文件很大),lint staged也会检查这个文件,并且不让我提交,除非我对所有文件中的所有函数进行类型注释。但这有很多工作要做,我只想在新文件上执行此操作。是否有一种方法可以将暂存文件筛选为仅在此提交中添加的文件?

EN

回答 2

Stack Overflow用户

发布于 2019-05-10 23:01:06

lint-staged使用另一个名为staged-git-files(sgf)的库来检索git提交之前暂存的文件列表。

以下是sgf使用的一些状态代码。

  • 已添加(A)
  • 已复制(C)
  • 已删除(D)
  • 已修改(M)
  • 已重命名(R)

lint-staged将状态代码ACM传递给sgf包。

代码语言:javascript
复制
 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。我希望他们能解决这个问题

票数 2
EN

Stack Overflow用户

发布于 2019-02-28 17:17:36

如果您使用目录结构将“新”代码与“旧”代码分开,就可以做到这一点。在那之后,在你的lint-staged配置中只有两种不同的glob模式。

这是我所能想到的最简单的方法,而且由于您可以将.eslintrc放入子目录中,因此它与其他代码质量工具(如ESLint )配合使用时效果很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54921803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档