@shishuaiyun/eslint-config
v0.1.0
Published
- Single quotes, no semi - Auto fix for formatting (aimed to be used standalone without Prettier) - TypeScript, Vue, React out-of-box - Lint also for json, yaml, markdown - Sorted imports, dangling commas for cleaner commit diff - Reasonable defaults, bes
Downloads
4
Readme
@shishuaiyun/eslint-config
- Single quotes, no semi
- Auto fix for formatting (aimed to be used standalone without Prettier)
- TypeScript, Vue, React out-of-box
- Lint also for json, yaml, markdown
- Sorted imports, dangling commas for cleaner commit diff
- Reasonable defaults, best practices, only one-line of config
Usage
node version && eslint version
if node > 16 & node < 18, please use eslint 8.xx
if node >= 18, eslint 8 or eslint 9, Everything is ok
The eslint
package does not need to be installed separately.
Because '@shishuaiyun/eslint-config' installs eslint automatically in our project based on peerDependencies
Of course, you can also manually install the version specified 'eslint' according to the version rules above
Install
pnpm add -D @shishuaiyun/eslint-config
Config eslint.config.js
ESM
import beauty from '@shishuaiyun/eslint-config'
export default beauty({})
CJS
// eslint.config.js
const beauty = require('@shishuaiyun/eslint-config').default
module.exports = beauty()
Config Options
import beauty from '@shishuaiyun/eslint-config'
export default beauty({
vue: true, // default vueVersion is 3
// vue2
// vue: {
// vueVersion: 2
// },
typescript: true,
gitignore: true,
markdown: true,
stylistic: {
indent: 2, // 4, or 'tab'
quotes: 'single', // or 'double'
},
ignores: [
'types/auto-imports.d.ts',
'types/components.d.ts',
'public',
'tsconfig.*.json',
'tsconfig.json',
],
}, {
rules: {
'no-console': 'off',
},
})
You don't need
.eslintignore
normally as it has been provided by the preset.
Add script for package.json
For example:
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
}
}
Config VS Code auto fix
Create .vscode/settings.json
{
// Enable the ESlint flat config support
"eslint.experimental.useFlatConfig": true,
// Disable the default formatter, use eslint instead
"prettier.enable": false,
"editor.formatOnSave": false,
"eslint.enable": true,
"eslint.format.enable": true,
// Auto fix
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "never"
},
// Silent the stylistic rules in you IDE, but still auto fix them
"eslint.rules.customizations": [
{ "rule": "style/*", "severity": "off" },
{ "rule": "*-indent", "severity": "off" },
{ "rule": "*-spacing", "severity": "off" },
{ "rule": "*-spaces", "severity": "off" },
{ "rule": "*-order", "severity": "off" },
{ "rule": "*-dangle", "severity": "off" },
{ "rule": "*-newline", "severity": "off" },
{ "rule": "*quotes", "severity": "off" },
{ "rule": "*semi", "severity": "off" }
],
// Enable eslint for all supported languages
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue",
"html",
"markdown",
"json",
"jsonc",
"yaml"
]
}
future plan
add react lint