A tool for linting projects with different techs
npm install @versett/eslint-plugin-versett
This plugin will help us maintain our code base to be cleaner and consistent among different projects.
Please read the guidelines below for both usage and development.
You can find more info on eslint here.
```
yarn add --dev @versett/eslint-plugin-versett
or
``
npm install --save-dev @versett/eslint-plugin-versett
You must be logged in to you Versett npm account first using npm login.
#### Peer Dependecies
You have to install the following peer dependencies directly in your project for now by this command:
``
yarn add --dev eslint babel-eslint eslint-plugin-jest eslint-plugin-import eslint-config-prettier eslint-plugin-prettier eslint-plugin-react-hooks
or
``
npm install --save-dev eslint babel-eslint eslint-plugin-jest eslint-plugin-import eslint-config-prettier eslint-plugin-prettier eslint-plugin-react-hooks
This command will no longer be needed after the issue with eslint shareable config plugins is resolved. You can refer to this RFC for more information.
##### React Project Peer Dependencies
If you are using React, you need to install the following dependencies as well:
yarn add --dev eslint-plugin-react eslint-plugin-jsx-a11y npm install --save-dev eslint-plugin-react eslint-plugin-jsx-a11y
(or )
##### Typescript Project Peer Dependencies
If you are using Typescript, you need to install the following dependencies as well:
yarn add --dev @typescript-eslint/parser @typescript-eslint/eslint-plugin npm install --save-dev @typescript-eslint/parser @typescript-eslint/eslint-plugin
(or )
Notes:
- It is important that you use the same version number for @typescript-eslint/parser and @typescript-eslint/eslint-plugin.tsconfig.json
- must be in the root of the project.
Each Versett configuration helps you start linting a project by just using the preconfigured setup. Currently there are 4 types of configurations available as below:
- plugin:@versett/eslint-plugin-versett/jsNode - for Node projects using Javascript
- plugin:@versett/eslint-plugin-versett/jsReact - for React projects using Javascript
- plugin:@versett/eslint-plugin-versett/tsNode - for Node projects using Typescript
- plugin:@versett/eslint-plugin-versett/tsReact - for React projects using Typescript
- plugin:@versett/eslint-plugin-versett/jsStandalone - for standalone Javascript projects
Here is a sample Eslint config file (project-directory/.eslintrc.json):
``
{
"plugins": [
"@versett/eslint-plugin-versett"
],
"extends": [
"plugin:@versett/eslint-plugin-versett/jsReact"
]
}
We strongly recommend against overriding the rules configured by this plugin. If you believe you have a good reason for overriding a rule, please create an issue on this repository and post it on the #developers channel on Slack. If the team agrees, we will change the rule in the plugin so all projects can benefit from it.
Add the following script to your package.json and then run it using yarn lint (or npm run lint):
`json`
"lint": "eslint src --ext .js,.tsx"
(you can change the --ext flag to the file extensions you use in your project)
To get started on development run these commands:
``
nvm use
yarn
For testing purposes you can use yarn link (or npm link):
``
cd eslint-plugin-versett
yarn link
then
``
cd my-project
yarn link @versett/eslint-plugin-versett
After that, a symbolic link is added to node_modules` of the project directory.
There are multiple eslint plugins we have used which are listed below.
- react
- jest
- import
- jsx-a11y
- @typescript-eslint/parser
- @typescript-eslint/eslint-plugin
please refer to their repos for rules and configurations.
Please read the contributing guide for details on our process for submitting pull requests.
Open an issue, we're happy to chat!