与哈士奇一起使用时,可多次运行



当我在终端中使用npx lint-staged时,一切看起来都很好。

例如:

PS E:Projectssample-project> git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file:   .husky/commit-msg
new file:   .husky/pre-commit
new file:   .lintstagedrc.json
modified:   .prettierrc
new file:   commitlint.config.js
modified:   nx.json
modified:   package-lock.json
modified:   package.json
PS E:Projectssample-project> npx lint-staged
√ Preparing lint-staged...
√ Running tasks for staged files...
√ Applying modifications from tasks...
√ Cleaning up temporary files...
PS E:Projectssample-project> 

但是当我的huskypre-commit钩子运行相同的命令时:

#!/usr/bin/env sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged

在终端中,我收到如下内容:

PS E:Projectssample-project> git commit -m"ci(core): configure project
>> 
>> edit prettier
>> add husky, commit-lint, lint-staged"
■ Preparing lint-staged...
■ Preparing lint-staged...
■ Running tasks for staged files...
■ Preparing lint-staged...
■ Running tasks for staged files...
■ Applying modifications from tasks...
■ Preparing lint-staged...
■ Running tasks for staged files...
■ Applying modifications from tasks...
■ Cleaning up temporary files...
- Preparing lint-staged...
■ Running tasks for staged files...
■ Applying modifications from tasks...
■ Cleaning up temporary files...
 Preparing lint-staged...
■ Running tasks for staged files...
■ Applying modifications from tasks...
■ Cleaning up temporary files...
| Preparing lint-staged...
■ Running tasks for staged files...
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
■ Running tasks for staged files...
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
| Running tasks for staged files...
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
■ .lintstagedrc.json — 8 files
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
| .lintstagedrc.json — 8 files
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
■ *.{js,ts,css,scss,md,html} — 1 file
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
■ *.{js,ts,css,scss,md,html} — 1 file
■ *.js — 1 file
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
| *.{js,ts,css,scss,md,html} — 1 file
■ *.js — 1 file
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
| *.{js,ts,css,scss,md,html} — 1 file
| *.js — 1 file
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
| *.js — 1 file
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
■ prettier --write
> *.js — 1 file
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
■ prettier --write
> *.js — 1 file
■ eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
| prettier --write
> *.js — 1 file
■ eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
| prettier --write
> *.js — 1 file
| eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
/ prettier --write
> *.js — 1 file
/ eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
- prettier --write
> *.js — 1 file
- eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
 prettier --write
> *.js — 1 file
 eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
| prettier --write
> *.js — 1 file
| eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
> *.{js,ts,css,scss,md,html} — 1 file
√ prettier --write
> *.js — 1 file
| eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
| eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
/ eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
- eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
 eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
| eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
/ eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
- eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
 eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
| eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
/ eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
- eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
 eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
> *.js — 1 file
√ eslint --fix
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
> .lintstagedrc.json — 8 files
√ *.{js,ts,css,scss,md,html} — 1 file
√ *.js — 1 file
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
> Running tasks for staged files...
√ .lintstagedrc.json — 8 files
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
√ Running tasks for staged files...
■ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
√ Running tasks for staged files...
 Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
√ Running tasks for staged files...
| Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
√ Running tasks for staged files...
√ Applying modifications from tasks...
■ Cleaning up temporary files...
√ Preparing lint-staged...
√ Running tasks for staged files...
√ Applying modifications from tasks...
| Cleaning up temporary files...
√ Preparing lint-staged...
√ Running tasks for staged files...
√ Applying modifications from tasks...
/ Cleaning up temporary files...
√ Preparing lint-staged...
√ Running tasks for staged files...
√ Applying modifications from tasks...
√ Cleaning up temporary files...
√ Preparing lint-staged...
√ Running tasks for staged files...
√ Applying modifications from tasks...
√ Cleaning up temporary files...
lint commit
[main 3110d3d] ci(core): configure project
8 files changed, 10673 insertions(+), 3421 deletions(-)
create mode 100644 .husky/commit-msg
create mode 100644 .husky/pre-commit
create mode 100644 .lintstagedrc.json
create mode 100644 commitlint.config.js
PS E:Projectssample-project> 

有人知道我怎么能解决这个问题吗?

.lintstagedrd.json

{
"*.{js,ts,css,scss,md,html}": "prettier --write",
"*.js": "eslint --fix"
}

有一个lint-stage的PR草案可以解决这个问题。与此同时,这个解决方法对我有效:

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
exec >/dev/tty 2>&1
npx lint-staged

https://github.com/okonet/lint-staged/issues/1164 issuecomment - 1177561594

最新更新