Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple run lint-staged when use with husky

When I use npx lint-staged in the terminal everything looks ok.

For example:

PS E:\Projects\sample-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:\Projects\sample-project> npx lint-staged
√ Preparing lint-staged...
√ Running tasks for staged files...
√ Applying modifications from tasks...
√ Cleaning up temporary files...
PS E:\Projects\sample-project> 

but when my husky pre-commit hook runs the same command:

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

npx lint-staged

In the terminal I receive something like this:

PS E:\Projects\sample-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:\Projects\sample-project> 

Did someone know how I can fix this?

.lintstagedrd.json

{
  "*.{js,ts,css,scss,md,html}": "prettier --write",
  "*.js": "eslint --fix"
}
like image 517
kstepien Avatar asked May 25 '26 18:05

kstepien


1 Answers

There is a draft PR in lint-staged that will fix this. In the meantime, this workaround worked for me:

#!/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

like image 151
amyngb Avatar answered May 27 '26 07:05

amyngb