UNPKG

create-react-husky

Version:

A custom React project setup with Husky and ESLint for pre-commit hooks and code quality

91 lines (64 loc) 2.46 kB
# React Project Setup with Husky, ESLint, Prettier, and Lint-staged ```bash npx create-react-husky ``` This is a custom React(vite) project setup that integrates **Husky** for Git hooks, **ESLint** for code linting, **Prettier** for code formatting, and **Lint-staged** for efficient linting and formatting on staged files only. This setup ensures high code quality and prevents poor-quality code from being committed to your repository. ## Features - **React Project Setup**: Quickly set up a React(Vite) project with either JavaScript or TypeScript. - **Husky**: Automatically runs Git hooks (e.g., `pre-commit`) to ensure code quality before committing. - **ESLint**: Enforces coding standards and catches potential errors in your JavaScript or TypeScript code. - **Prettier**: Formats the code automatically to maintain consistent style. - **Lint-staged**: Only runs linting and formatting on staged files to optimize your workflow. - **Pre-commit Hook**: Automatically runs linting and formatting tasks before committing code. ## Prerequisites Ensure you have the following tools installed on your system: - **Node.js**: [Download Node.js](https://nodejs.org/) - **Git**: [Download Git](https://git-scm.com/) ## Quick Start (Automatic Setup via `npx`) To set up the project automatically with all necessary configurations, run the following command: ```bash npx create-react-husky ``` ### Manual setup - **With JavaScript** ```base git clone https://github.com/akashpradhan-dev/react-husky-js ``` - **With Typescript** ```base git clone https://github.com/akashpradhan-dev/react-husky-ts ``` ## Commands - Automatically fixes ESLint issues in your code ```bash npm run lint:fix ``` - Check lint issues ```bash npm run lint ``` - Automatically fixes Prettier formatting issues in your code. ```bash npm run format:fix ``` - Check format ```bash npm run format ``` ## Change configuration ESLint: add or disable rule in eslint.config.js file in the root of your project: ```bash rules: { ...js.configs.recommended.rules, ...react.configs.recommended.rules, ...react.configs['jsx-runtime'].rules, ...reactHooks.configs.recommended.rules, 'react/jsx-no-target-blank': 'off', 'react-refresh/only-export-components': [ 'warn', { allowConstantExport: true }, ], 'react/prop-types': 'off', 'react/no-unknown-property': 'off', //Add new rule here }, ```