Last active
April 18, 2025 18:24
-
-
Save webbertakken/c2b457d39224baf701c8de1589b61555 to your computer and use it in GitHub Desktop.
Definitive cross-platform lint-staged config (explained)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
// 1. Use these exact dependencies | |
"devDependencies": { | |
"husky": "=8.0.3", | |
"lint-staged": "=13.2.1" | |
} | |
// 2. Make sure it installs when people install dependencies | |
"scripts": { | |
"prepare": "husky install" | |
} | |
// 3. Configure checks to run simultaneously (only 1 that writes) | |
"lint-staged": { | |
"*.@(ts|tsx)": "bash -c 'tsc --skipLibCheck --noEmit'", // the `bash -c` part is to make sure tsc picks up tsconfig.json (See: https://github.com/okonet/lint-staged/issues/825#issuecomment-674575655) | |
"*.@(ts|tsx|js|jsx)": "eslint --max-warnings 0", // if you want to fail on warnings too, otherwise simply `eslint` | |
"*.@(ts|tsx|js|jsx|json|jsonc|json5|md|mdx|yaml|yml)": "prettier --write" // automatically fix formatting errors | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# .husky/pre-commit | |
#!/usr/bin/env sh | |
. "$(dirname -- "$0")/_/husky.sh" | |
# If tty is available, apply fix from https://github.com/typicode/husky/issues/968#issuecomment-1176848345 | |
if sh -c ": >/dev/tty" >/dev/null 2>/dev/null; then exec >/dev/tty 2>&1; fi | |
# Heavy checks should only be done on staged files | |
yarn lint-staged |
Does not work on WSL with Laravel Sail
error.mp4
@mreduar did you end up fixing this issue? What worked for you? Anything I can add here?
Unfortunately, I still haven’t found any solution that fixes this issue, even after all these time. For a long time now, I’ve just been running the commands without any colors or formatting as a workaround. If you or anyone else finds a proper fix, I’d really appreciate any updates here. Thanks!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for reporting back your findings @shayl29. I'll have a go with it in the coming weeks and see if it's worth updating the original above. The fix looks useful.
Do you know why Webstorm was running the pre-commit hook using a tty?
My Terminal settings are I think default apart from using the more modern Powershell, which I think should be used by everyone instead of using git bash or Mingw, so that we can move forward as a community.