Skip to content

Instantly share code, notes, and snippets.

@webbertakken
Last active April 18, 2025 18:24
Show Gist options
  • Save webbertakken/c2b457d39224baf701c8de1589b61555 to your computer and use it in GitHub Desktop.
Save webbertakken/c2b457d39224baf701c8de1589b61555 to your computer and use it in GitHub Desktop.
Definitive cross-platform lint-staged config (explained)
{
// 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
}
}
# .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
@mreduar
Copy link

mreduar commented Apr 18, 2025

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