ufutx-pc-website/.eslintrc.cjs
2025-06-09 10:23:45 +08:00

60 lines
2.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// .eslintrc.cjs
module.exports = {
root: true,
env: {
browser: true,
node: true,
es6: true,
},
extends: [
'eslint:recommended',
'plugin:vue/vue3-recommended', // Vue 3 推荐规则
'@vue/eslint-config-typescript', // TypeScript 支持
'prettier', // 关闭与 Prettier 冲突的规则(需先安装 prettier
'plugin:prettier/recommended', // 将 Prettier 规则作为 ESLint 规则
],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
ecmaFeatures: {
jsx: true,
},
},
rules: {
// 自定义规则(根据团队需求调整)
'vue/multi-word-component-names': 'off',
'prettier/prettier': 'error', // 将 Prettier 错误视为 ESLint 错误
// 强制使用 === 而非 ==
'eqeqeq': 'error',
// 组件 props 必须有类型和默认值
'vue/require-default-prop': 'error',
'vue/require-prop-types': 'error',
// 限制每行最大长度
'max-len': ['warn', {code: 120}],
// 禁止使用未定义的组件
'vue/no-unregistered-components': 'error',
// 组件名必须为 PascalCase
'vue/component-name-in-template-casing': ['error', 'PascalCase'],
// 禁止使用 v-html防止 XSS
'vue/no-v-html': 'warn',
// 自定义规则(根据团队需求调整)
'vue/multi-word-component-names': 'off', // 允许单字组件名
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'@typescript-eslint/no-unused-vars': ['warn', {argsIgnorePattern: '^_'}],
},
overrides: [
// 针对测试文件的规则
{
files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'],
env: {
jest: true,
},
},
],
}