eslint-config-productsway 👋
Enhance your code quality with XO's ESLint config, further augmented with TypeScript and Prettier support.
Installation
npx install-peerdeps --dev eslint-config-productsway
Usage
Create a .eslintrc.cjs
file at the root of your project's directory.
For TypeScript projects:
module.exports = {
extends: ['productsway/typescript'],
};
For TypeScript and React projects:
module.exports = {
root: true,
env: { browser: true, es2020: true },
extends: ['productsway/react'],
ignorePatterns: ['dist', '.eslintrc.cjs', 'vite.config.ts'],
parserOptions: {
project: ['./tsconfig.json', './tsconfig.node.json'],
},
rules: {},
};
Configuring the ESLint TypeScript Parser
If your project uses TypeScript, ensure to configure the ESLint TypeScript parser by specifying your tsconfig.json
files in the parserOptions.project
array:
module.exports = {
extends: ['productsway/typescript'],
parserOptions: {
project: ['./tsconfig.json', './tsconfig.node.json'],
}
};
Executing ESLint
From your project's root directory, execute:
npx eslint . --ext .js,.jsx,.ts,.tsx
For Vite React App, include .ts and .tsx extensions and report unused disable directives:
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
Integration with Next.js
For Next.js projects, you can use the following configuration in your .eslintrc.json
file:
{
"extends": ["productsway/react", "plugin:@next/next/recommended"]
}
Please note: You need to install eslint-config-next
to use the recommended ESLint configuration for Next.js.
Roadmap
Tips
Sorting Imports with Prettier Plugin
For consistent import ordering, utilize the trivago/prettier-plugin-sort-imports plugin.
In your .prettierrc.js
file:
module.exports = {
...
"importOrder": ["^@core/(.*)$", "^@server/(.*)$", "^@ui/(.*)$", "^[./]"],
"importOrderSeparation": true,
"importOrderSortSpecifiers": true,
"plugins": ["@trivago/prettier-plugin-sort-imports"]
}
Author
👤 Huynh Duc Dung
Show Your Support
If this project assists you, give it a ⭐️!