web 3d图形渲染器
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
4.8 KiB

  1. # eslint-config-react-app
  2. This package includes the shareable ESLint configuration used by [Create React App](https://github.com/facebook/create-react-app).<br>
  3. Please refer to its documentation:
  4. - [Getting Started](https://facebook.github.io/create-react-app/docs/getting-started) – How to create a new app.
  5. - [User Guide](https://facebook.github.io/create-react-app/) – How to develop apps bootstrapped with Create React App.
  6. ## Usage in Create React App Projects
  7. The easiest way to use this configuration is with [Create React App](https://github.com/facebook/create-react-app), which includes it by default.
  8. **You don’t need to install it separately in Create React App projects.**
  9. ## Usage Outside of Create React App
  10. If you want to use this ESLint configuration in a project not built with Create React App, you can install it with the following steps.
  11. First, install this package, ESLint and the necessary plugins.
  12. ```sh
  13. npm install --save-dev eslint-config-react-app @typescript-eslint/eslint-plugin@^4.0.0 @typescript-eslint/parser@^4.0.0 babel-eslint@^10.0.0 eslint@^7.5.0 eslint-plugin-flowtype@^5.2.0 eslint-plugin-import@^2.22.0 eslint-plugin-jsx-a11y@^6.3.1 eslint-plugin-react@^7.20.3 eslint-plugin-react-hooks@^4.0.8
  14. ```
  15. Then create a file named `.eslintrc.json` with following contents in the root folder of your project:
  16. ```json
  17. {
  18. "extends": "react-app"
  19. }
  20. ```
  21. That's it! You can override the settings from `eslint-config-react-app` by editing the `.eslintrc.json` file. Learn more about [configuring ESLint](http://eslint.org/docs/user-guide/configuring) on the ESLint website.
  22. ## Jest rules
  23. This config also ships with optional Jest rules for ESLint (based on [`eslint-plugin-jest`](https://github.com/jest-community/eslint-plugin-jest)).
  24. You'll first need to add the ESLint plugin for Jest (if you don't already have it installed).
  25. ```sh
  26. npm install --save-dev eslint-plugin-jest@^24.0.0 eslint-plugin-testing-library&^3.9.0
  27. ```
  28. You can then enable these rules by adding the Jest config to the `extends` array in your ESLint config.
  29. ```json
  30. {
  31. "extends": ["react-app", "react-app/jest"]
  32. }
  33. ```
  34. ## Accessibility Checks
  35. The following rules from the [eslint-plugin-jsx-a11y](https://github.com/evcohen/eslint-plugin-jsx-a11y) plugin are activated:
  36. - [alt-text](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/alt-text.md)
  37. - [anchor-has-content](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-has-content.md)
  38. - [aria-activedescendant-has-tabindex](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-activedescendant-has-tabindex.md)
  39. - [aria-props](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-props.md)
  40. - [aria-proptypes](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-proptypes.md)
  41. - [aria-role](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-role.md)
  42. - [aria-unsupported-elements](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-unsupported-elements.md)
  43. - [heading-has-content](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/heading-has-content.md)
  44. - [href-no-hash](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/v5.1.1/docs/rules/href-no-hash.md)
  45. - [iframe-has-title](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/iframe-has-title.md)
  46. - [img-redundant-alt](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/img-redundant-alt.md)
  47. - [no-access-key](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-access-key.md)
  48. - [no-distracting-elements](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-distracting-elements.md)
  49. - [no-redundant-roles](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-redundant-roles.md)
  50. - [role-has-required-aria-props](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-has-required-aria-props.md)
  51. - [role-supports-aria-props](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-supports-aria-props.md)
  52. - [scope](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/scope.md)
  53. If you want to enable even more accessibility rules, you can create an `.eslintrc.json` file in the root of your project with this content:
  54. ```json
  55. {
  56. "extends": ["react-app", "plugin:jsx-a11y/recommended"],
  57. "plugins": ["jsx-a11y"]
  58. }
  59. ```
  60. However, if you are using [Create React App](https://github.com/facebook/create-react-app) and have not ejected, any additional rules will only be displayed in the [IDE integrations](https://facebook.github.io/create-react-app/docs/setting-up-your-editor#displaying-lint-output-in-the-editor), but not in the browser or the terminal.