Contains the settings and rules used for React projects based on TypeScript within YOO. It is publicly available via the npm registry.
The exported index.js
file contains all the ESLint rules that are compatible with our coding guidelines.
See the guidelines for more information.
This set of rules can be applied to React applications written in TypeScript. The base set of rules, which this package extends from, are framework agnostic can be found here.
For Angular projects you can consult this package.
In order to use the ESLint configuration file in your project, you will have to install its dependencies (including peer-dependencies). The following command should work for both npm and yarn. It will detect the proper client.
npx install-peerdeps --dev @yoo-digital/eslint-config-react
Be aware: The typescript package is one of the peer-dependencies. The versions might collide in your project. Always try to use the latest versions of typescript in your project.
After installing the packages, you can create a .eslintrc.js
file in the root of your project
and add the following lines:
module.exports = {
extends: '@yoo-digital/eslint-config-react',
};
You can apply your own set of rules on top of that, but do not turn off any of the rules, except it is an obstacle and making your life harder. Check the chapter below, for a complete set of rules that can be applied.
Important: This file should only contain rules concerning React and JSX.
Before creating a pull request or publishing changes, make sure you tested your changes.
You can use yarn link
to link your work in progress into an actual project and test your changes.
Make sure you are in the directory of the package (./packages/eslint-config-react) before linking.
You might also have to link the package ./packages/eslint-config-base if you made changes to the base.
See the official documentation of yarn for more information.
If you want to extend or change the set of rules, you can find all rules in the following list. We follow the Airbnb styleguide as a reference and applied our own set of rules regarding TypeScript: