【问题标题】:lint-staged run different commands for different folderslint-staged 为不同的文件夹运行不同的命令
【发布时间】:2021-05-24 11:57:34
【问题描述】:

我的项目文件夹设置了两个子目录,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 来过滤文件。

【问题讨论】:

    标签: javascript typescript lint-staged


    【解决方案1】:

    这里给出了如何定位文件的一些解释:https://www.npmjs.com/package/lint-staged#user-content-filtering-files

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

    我们使用micromatch 表示全局,这听起来像是库中的一个问题。

    也许问题进一步扩大。我还遇到了No staged files match any configured task. 消息,对我来说,将jsx 扩展名添加到配置中修复了它。

    原来我有:

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

    修改如下,效果很好:

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

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 2020-08-18
      • 2020-10-25
      • 2019-11-05
      • 2012-11-24
      • 2021-05-12
      • 2023-03-03
      • 2019-09-12
      • 2019-06-21
      相关资源
      最近更新 更多