Appearance
npm
sh
npm i @eslint/js eslint eslint-config-prettier eslint-plugin-prettier fs-extra globals prettier typescript-eslint ts-node -D
npx tsc --init修改 tsconfig.json
使用 ESModule 替代 Commonjs,并且允许默认 any
json
"moduleResolution": "node10"
"noImplicitAny": false,.prettier
json
{
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "none",
"arrowParens": "avoid"
}eslint.config.js
js
import js from '@eslint/js'
import globals from 'globals'
import tseslint from 'typescript-eslint'
import pluginPrettier from 'eslint-plugin-prettier'
import { defineConfig } from 'eslint/config'
export default defineConfig([
{
files: ['**/*.{js,mjs,cjs,ts,mts,cts,vue}'],
plugins: { js, prettier: pluginPrettier },
extends: ['js/recommended', 'plugin:prettier/recommended'],
rules: {
// 禁止未使用变量
'no-unused-vars': ['warn'],
// 启用 prettier 作为 eslint 规则
'prettier/prettier': 'error'
}
},
{
files: ['**/*.{js,mjs,cjs,ts,mts,cts,vue}'],
languageOptions: { globals: globals.browser }
},
tseslint.configs.recommended,
pluginVue.configs['flat/essential']
]).vscode/setting.json
json
{
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}