主题
Lint
EditorConfig
- 配置文件:
.editorconfig
,配置项参考 EditorConfig。
ini
[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}]
charset = utf-8
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
# end_of_line = lf
[*.md]
trim_trailing_whitespace = false
Prettier
- 安装依赖
bash
pnpm install -D prettier
- 配置文件
json
{
"$schema": "https://json.schemastore.org/prettierrc",
"arrowParens": "always",
"bracketSameLine": false,
"bracketSpacing": true,
"embeddedLanguageFormatting": "auto",
"experimentalTernaries": false,
"htmlWhitespaceSensitivity": "ignore",
"insertPragma": false,
"jsxSingleQuote": false,
"printWidth": 120,
"proseWrap": "preserve",
"quoteProps": "consistent",
"requirePragma": false,
"semi": false,
"singleAttributePerLine": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "all",
"useTabs": false,
"vueIndentScriptAndStyle": false
}
- 添加脚本
json
{
"scripts": {
"format": "prettier --write src/"
}
}
ESLint
ts + prettier
- 安装依赖
bash
pnpm install -D eslint eslint-plugin-vue @vue/eslint-config-prettier @vue/eslint-config-typescript
- 配置文件
js
import pluginVue from 'eslint-plugin-vue'
import vueTsEslintConfig from '@vue/eslint-config-typescript'
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'
export default [
{
name: 'app/files-to-lint',
files: ['**/*.{ts,mts,tsx,vue}'],
},
{
name: 'app/files-to-ignore',
ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],
},
...pluginVue.configs['flat/essential'],
...vueTsEslintConfig(),
skipFormatting,
]
- 添加脚本
json
{
"scripts": {
"lint": "eslint . --fix"
}
}
Browserslist
- 配置文件:
.browserslistrc
,配置项参考 Browserslist。
ini
> 0.5%
last 2 versions
Firefox ESR
not dead