微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

lint-staged 为不同的文件夹运行不同的命令

如何解决lint-staged 为不同的文件夹运行不同的命令

我的项目文件夹设置了两个子文件夹,frontendbackend 分别用于存放代码

因此在我的根文件夹中:

- backend
    - package.json
    - other backend codes
- frontend
    - package.json
    - other frontend codes
- package.json

在根的 package.json 中,我有

  "scripts": {
    "frontend:lint": "cd ./frontend && npm run lint && cd ..","backend:lint": "cd ./backend && npm run lint && cd .."
  },"devDependencies": {
    "husky": "4.3.8","lint-staged": "10.5.3"
  },"husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },"lint-staged": {
    "frontend/**/*.{ts,tsx,json,html}": [
      "npm run frontend:lint"
    ],"backend/**/*.{ts,json}": [
      "npm run backend:lint"
    ]
  }

但是,如果我在根级别执行 git addgit commit,它一直说 No staged files match any configured task.

我查看了两个子 package.json 并且它们都有效。我不知道如何配置 lint-staged 来过滤文件

解决方法

此处给出了有关如何定位文件的一些说明:https://www.npmjs.com/package/lint-staged#user-content-filtering-files

它可能不适用于您的情况,因为您的配置提供了多种文件类型,但只是为了将其标记为一种可能性,在 lint-staged 存储库上打开了一个“Lint-staged tasks do not run if a single filetype is specified with curly braces e.g. *.{js} ”票证,其中合作者评论:

我们使用 micromatch 作为 globs,这听起来像是库中的一个问题。

也许问题会进一步延伸。我还遇到了 No staged files match any configured task. 消息,并为我添加了 jsx 扩展到配置修复了它。

最初我有:

  "lint-staged": {
    "**/*.{js}": [
      "eslint --fix"
    ]
  }

修改以下内容后,效果很好:

  "lint-staged": {
    "**/*.{js,jsx}": [
      "eslint --fix"
    ]
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。