Comprehensive ESLint configuration package with pluggable configs for ECMAScript Next, Node.js and React Native
npx @tessl/cli install tessl/npm-eslint-config-recommended@4.1.0ESLint Config Recommended is a comprehensive package that provides pluggable ESLint configurations for ECMAScript Next, Node.js and React Native applications. It offers a collection of opinionated, safety-focused ESLint configurations that err on the side of more rules rather than fewer, providing developers with comprehensive linting coverage across different JavaScript environments.
npm install --save-dev eslint-config-recommendedThis package provides ESLint shareable configurations that are referenced in ESLint configuration files, not imported as JavaScript modules.
extends:
- recommended/esnext
- recommended/node
- recommended/react-native{
"extends": [
"recommended/esnext",
"recommended/node",
"recommended/react-native"
]
}module.exports = {
extends: [
"recommended/esnext",
"recommended/node",
"recommended/react-native"
]
};# Install the recommended configuration package
npm install --save-dev eslint-config-recommended
# Create .eslintrc.yaml with desired configs
cat > .eslintrc.yaml << EOF
extends:
- recommended/esnext
- recommended/node
EOF
# Run ESLint on your project
npx eslint .For style guide enforcement:
extends:
- recommended/esnext/style-guide
- recommended/node/style-guide
- recommended/react-native/style-guideThis package is structured as a monorepo containing multiple specialized ESLint configurations:
esnext provides modern JavaScript/ES6+ linting foundationnode and react-native extend the base with environment-specific rulesrecommended package provides convenient access to all configurationsModern JavaScript/ES6+ configuration providing safety checks and best practices for ECMAScript Next features.
# Configuration: "recommended/esnext"
env:
es6: true
commonjs: true
parser: babel-eslint
extends:
- eslint:recommended
- plugin:import/errors
- plugin:import/warningsNode.js-specific configuration that extends ESNext with server-side JavaScript rules and Node.js environment settings.
# Configuration: "recommended/node"
env:
node: true
extends: esnext
rules:
no-path-concat: 2
no-process-exit: 2
no-sync: 1
import/no-nodejs-modules: 0React Native configuration extending ESNext with React and React Native specific linting rules.
# Configuration: "recommended/react-native"
env:
browser: true
plugins:
- react
- react-native
extends:
- esnext
- plugin:react/recommendedEnhanced configurations that include comprehensive style and formatting rules for consistent code appearance.
# Style Guide Configurations
extends:
- recommended/esnext/style-guide # Base style rules
- recommended/node/style-guide # Node.js style rules
- recommended/react-native/style-guide # React Native style rulesThe configurations build upon each other in this hierarchy:
npm install --save-dev eslint-config-recommendedProvides access to all configurations via recommended/ prefix.
If you only need specific configurations:
# Individual installation
npm install --save-dev eslint-config-esnext
npm install --save-dev eslint-config-node
npm install --save-dev eslint-config-react-native# .eslintrc.yaml
extends:
- recommended/esnext/style-guide
- recommended/node/style-guide
overrides:
- files: ['src/client/**/*.js']
extends:
- recommended/react-native/style-guide# .eslintrc.yaml
extends:
- recommended/node/style-guide
rules:
no-console: warn
no-sync: error# .eslintrc.yaml
extends:
- recommended/react-native/style-guide
rules:
react-native/no-inline-styles: error# .eslintrc.yaml
extends:
- recommended/esnext
- recommended/node
# Override for specific file patterns
overrides:
- files: ['**/*.test.js']
env:
jest: true
rules:
no-unused-expressions: offRuntime Dependencies:
eslint-config-esnext: ^4.1.0eslint-config-node: ^4.1.0eslint-config-react-native: ^4.1.0eslint: ^6.8.0Peer Dependencies:
eslint: ^6.0.0Recommended setup with husky for automatic linting:
npm install --save-dev eslint-config-recommended husky{
"scripts": {
"precommit": "eslint ."
}
}