@versett/eslint-plugin-versett

0.20.0 • Public • Published

eslint-plugin-versett

Build Status

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.

Usage

Installation

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
(or npm install --save-dev eslint-plugin-react eslint-plugin-jsx-a11y)

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
(or npm install --save-dev @typescript-eslint/parser @typescript-eslint/eslint-plugin)

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.

Configuration

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.

Running

Add the following script to your package.json and then run it using yarn lint (or npm run lint):

"lint": "eslint src --ext .js,.tsx"

(you can change the --ext flag to the file extensions you use in your project)

Development

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.

Dependencies

There are multiple eslint plugins we have used which are listed below.

please refer to their repos for rules and configurations.

Contributing

Please read the contributing guide for details on our process for submitting pull requests.

Need help?

Open an issue, we're happy to chat!

Readme

Keywords

none

Package Sidebar

Install

npm i @versett/eslint-plugin-versett

Weekly Downloads

65

Version

0.20.0

License

MIT

Unpacked Size

58.4 kB

Total Files

40

Last publish

Collaborators

  • justintbrown
  • calliescott
  • risography
  • joykliu
  • andre.valgrande
  • jessekernaghan
  • amandala
  • jettblue
  • tamv
  • versettdev
  • marlondc
  • versett-ci
  • justinluk
  • helloimbenny
  • the-upside
  • ashimadas
  • lfg-clairvoyance-ci
  • dhawkings