Standard.js linting rules - broken into modular pieces
Standard.js is a fantastic collection of linter rules, but it can be difficult to integrate with other code-quality tools like Prettier, TypeScript, or Flow.
This package makes it easy to integrate Standard.js with these other tools by breaking its configuration into modular pieces. Just mix & match the bits you need for your particular setup:
standard-kit
- Basic Standard.js rulesstandard-kit/jsx
- JSX language supportstandard-kit/typescript
- TypeScript language supportstandard-kit/flow
- Flow language supportIf you would like to use Prettier to format your source code instead of Standard.js, just prefix the configuration names with standard-kit/prettier
instead of standard-kit
.
Use the configuration web page to generate your.eslintrc.json
file and list of dependencies for package.json
.
First, add eslint-plugin-standard-kit
as one of your project's devDependencies
:
npm install --save-dev eslint-plugin-standard-kit
Depending on which configurations you enable, you will need to add several other dependencies as well:
eslint-plugin-import
eslint-plugin-promise
eslint-plugin-react
@typescript-eslint/parser
@typescript-eslint/eslint-plugin
babel-eslint
eslint-plugin-flowtype
eslint-plugin-node
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-prettier
prettier
Finally, edit your ESLint configuration file to enable your selected rules, as shown in the example below:
{
"extends": [
"standard-kit",
"standard-kit/jsx",
"standard-kit/typescript"
],
"parserOptions": {
"project": "tsconfig.json"
}
}
If you are using JSX or Typescript, you may want to pass the --ext
option to ESlint to tell it about the .jsx
or .ts
file extensions:
eslint --ext .js,.jsx,.ts src/
The TypeScript rules also need to know where your tsconfig.json
file is located. You can configure this using the parserOptions.project
setting, as shown in the example above.
This package auto-generate its configuration files based on the official eslint-config-standard, eslint-config-standard-jsx, and eslint-config-standard-with-typescript packages. This means you are getting the exact same rules as the official Standard.js project, just combined & filtered into a more convenient format.
Flow support uses the recommended settings from eslint-plugin-flowtype.
Pull requests are welcome! This library uses its own rules for linting & formatting, so please be sure the pre-commit hooks pass.
The unit tests use a snapshot system to verify that our output doesn't change. If you need to update the snapshots, just run UPDATE=1 yarn test
to re-generate those.
To test the web interface, just use yarn prepare
to compile the code, then open / refresh public/index.html
.