9

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"
}
Kordrad
  • 1,154
  • 7
  • 18

1 Answers1

7

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

amyngb
  • 71
  • 1
  • 2
  • I also have a workaround. In my case, I created a custom script to run logger with spinner to husky. Example command `node tools/looger.js command="lint-staged" run="npx lint-staged -q"` – Kordrad Aug 22 '22 at 04:26
  • 2
    Unfortunately this workaround does not work in all environments as /dev/tty can be "undefined" (so you get error that no such device or address was found)... Hopefully they will fix it soon – tomdelahaba Sep 01 '22 at 23:58