github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/node_modules/eslint-plugin-react-hooks/README.md (about) 1 # `eslint-plugin-react-hooks` 2 3 This ESLint plugin enforces the [Rules of Hooks](https://reactjs.org/docs/hooks-rules.html). 4 5 It is a part of the [Hooks API](https://reactjs.org/docs/hooks-intro.html) for React. 6 7 ## Installation 8 9 **Note: If you're using Create React App, please use `react-scripts` >= 3 instead of adding it directly.** 10 11 Assuming you already have ESLint installed, run: 12 13 ```sh 14 # npm 15 npm install eslint-plugin-react-hooks --save-dev 16 17 # yarn 18 yarn add eslint-plugin-react-hooks --dev 19 ``` 20 21 Then extend the recommended eslint config: 22 23 ```js 24 { 25 "extends": [ 26 // ... 27 "plugin:react-hooks/recommended" 28 ] 29 } 30 ``` 31 32 ### Custom Configuration 33 34 If you want more fine-grained configuration, you can instead add a snippet like this to your ESLint configuration file: 35 36 ```js 37 { 38 "plugins": [ 39 // ... 40 "react-hooks" 41 ], 42 "rules": { 43 // ... 44 "react-hooks/rules-of-hooks": "error", 45 "react-hooks/exhaustive-deps": "warn" 46 } 47 } 48 ``` 49 50 51 ## Advanced Configuration 52 53 `exhaustive-deps` can be configured to validate dependencies of custom Hooks with the `additionalHooks` option. 54 This option accepts a regex to match the names of custom Hooks that have dependencies. 55 56 ```js 57 { 58 "rules": { 59 // ... 60 "react-hooks/exhaustive-deps": ["warn", { 61 "additionalHooks": "(useMyCustomHook|useMyOtherCustomHook)" 62 }] 63 } 64 } 65 ``` 66 67 We suggest to use this option **very sparingly, if at all**. Generally saying, we recommend most custom Hooks to not use the dependencies argument, and instead provide a higher-level API that is more focused around a specific use case. 68 69 ## Valid and Invalid Examples 70 71 Please refer to the [Rules of Hooks](https://reactjs.org/docs/hooks-rules.html) documentation and the [Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#what-exactly-do-the-lint-rules-enforce) to learn more about this rule. 72 73 ## License 74 75 MIT