依赖
"devDependencies": {
"@eslint/js": "^9.5.0",
"@types/node": "^20.14.9",
"eslint": "^9.5.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-vue": "^9.26.0",
"prettier": "^3.3.2",
"typescript": "^5.5.2",
"typescript-eslint": "^7.14.1",
"vite-plugin-eslint": "^1.8.1",
}
.prettierrc.cjs配置
module.exports = {
printWidth: 300,
tabWidth: 4,
useTabs: false,
semi: true,
singleQuote: false,
quoteProps: "as-needed",
jsxSingleQuote: false,
trailingComma: "none",
bracketSpacing: true,
jsxBracketSameLine: false,
arrowParens: "always",
requirePragma: false,
insertPragma: false,
proseWrap: "preserve",
htmlWhitespaceSensitivity: "ignore",
endOfLine: "auto"
};
.prettierignore忽略文件配置
/dist*.svg
**
eslint.config.js配置
import pluginVue from "eslint-plugin-vue";
import pluginJs from "@eslint/js";
import tseslint from "typescript-eslint";
import vueParser from "vue-eslint-parser";
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
export default tseslint.config({
extends: [
pluginJs.configs.recommended,
...tseslint.configs.recommended,
...pluginVue.configs["flat/essential"],
eslintPluginPrettierRecommended
],
languageOptions: {
parser: vueParser,
parserOptions: {
parser: tseslint.parser,
sourceType: "module"
}
},
rules: {
semi: ["always", "never"],
"comma-dangle": ["error", "never"],
"@typescript-eslint/no-unused-vars": "off",
"space-before-function-paren": 0,
"generator-star-spacing": "off",
"object-curly-spacing": 0,
"array-bracket-spacing": 0
}
});