Initial commit
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# Package.json Configuration Reference
|
||||
|
||||
## Complete Scripts and Lint-Staged Configuration
|
||||
|
||||
Add these sections to your `package.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "your-project",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "eslint . --max-warnings 0",
|
||||
"lint:fix": "eslint . --fix",
|
||||
"format": "prettier --write .",
|
||||
"format:check": "prettier --check .",
|
||||
"prepare": "husky"
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{js,jsx,ts,tsx}": [
|
||||
"eslint --fix",
|
||||
"prettier --write"
|
||||
],
|
||||
"*.{json,md,yml,yaml,css,scss}": [
|
||||
"prettier --write"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^9.0.0",
|
||||
"@eslint/js": "^9.0.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-react": "^7.35.0",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.9.0",
|
||||
"@typescript-eslint/parser": "^7.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
||||
"typescript-eslint": "^7.0.0",
|
||||
"prettier": "^3.3.0",
|
||||
"husky": "^9.0.0",
|
||||
"lint-staged": "^15.2.0"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Script Descriptions
|
||||
|
||||
- **lint**: Runs ESLint on entire codebase with zero warning tolerance (fails CI on warnings)
|
||||
- **lint:fix**: Automatically fixes ESLint issues where possible
|
||||
- **format**: Formats all files in project with Prettier
|
||||
- **format:check**: Checks formatting without modifying files (good for CI)
|
||||
- **prepare**: npm lifecycle hook that runs after `npm install` to set up Husky
|
||||
|
||||
## Lint-Staged Configuration
|
||||
|
||||
The `lint-staged` object defines which commands run on which file types during pre-commit:
|
||||
|
||||
- JavaScript/TypeScript files: Run ESLint with auto-fix, then Prettier
|
||||
- Other files (JSON, Markdown, YAML, CSS): Run only Prettier
|
||||
|
||||
### Adding Type Checking
|
||||
|
||||
For stricter pre-commit checks, add TypeScript type checking:
|
||||
|
||||
```json
|
||||
{
|
||||
"lint-staged": {
|
||||
"*.{ts,tsx}": [
|
||||
"eslint --fix",
|
||||
"prettier --write",
|
||||
"bash -c 'tsc --noEmit'"
|
||||
],
|
||||
"*.{js,jsx}": [
|
||||
"eslint --fix",
|
||||
"prettier --write"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Note: Type checking all staged files can slow down commits. Consider using it selectively.
|
||||
|
||||
### Adding Tests
|
||||
|
||||
To run tests on staged files:
|
||||
|
||||
```json
|
||||
{
|
||||
"lint-staged": {
|
||||
"*.{ts,tsx,js,jsx}": [
|
||||
"eslint --fix",
|
||||
"prettier --write",
|
||||
"jest --bail --findRelatedTests"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The `--findRelatedTests` flag runs only tests related to changed files.
|
||||
Reference in New Issue
Block a user