javascript - lint-staged 为不同的文件夹运行不同的命令
问题描述
我的项目文件夹设置了两个子目录,frontend
并backend
分别存放代码。
因此在根文件夹中我有:
- 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 add
并且git commit
在根级别上,它会一直说No staged files match any configured task.
我已经查看了两个子 package.json 并且它们都有效。我不确定如何配置 lint-staged 来过滤文件。
解决方案
这里给出了如何定位文件的一些解释:https ://www.npmjs.com/package/lint-staged#user-content-filtering-files
它可能不适用于您的情况,因为您的配置提供了多种文件类型,但只是将其标记为一种可能性,有一个“<a href="https://github.com/okonet/lint-staged/issues/ 953" rel="nofollow noreferrer">Lint-staged 任务不会运行,如果使用花括号指定单个文件类型,例如 *.{js} ”票lint-staged
在合作者评论的回购中打开:
我们
micromatch
用于 glob,这听起来像是图书馆中的一个问题。
也许这个问题进一步延伸。我也遇到了这No staged files match any configured task.
条消息,对我来说,将jsx
扩展添加到配置中修复了它。
最初我有:
"lint-staged": {
"**/*.{js}": [
"eslint --fix"
]
}
修改以下内容后,它工作正常:
"lint-staged": {
"**/*.{js,jsx}": [
"eslint --fix"
]
}
推荐阅读
- php - 如何在sql中执行cmd?
- ruby-on-rails - 无法自动加载常量 SetTitle /controllers/concerns/set_title.rb 来定义它
- python - keras 将两个损失与可调整的权重相结合,其中输出的维度不同
- python - Python请求:在标题中有一个空格用于发布
- android - 我想通过使用字符串请求从一个 url 获取两个 jsonArray
- docker - 如何在没有 from 标志的情况下编写多阶段 Dockerfile
- unit-testing - 是否可以模拟和忽略属性
- dji-sdk - 无法运行 ImportSDKDemo 它无法加载 ffmepg
- discord.js - 如何遍历地图?
- python - python GUI中的TypeError matplotlib