47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
// ESLint配置文件 - 需要通过 .dev-tools-config.json 启用
|
||
// 运行 `npm run scripts:enable` 来启用ESLint
|
||
|
||
const fs = require('fs');
|
||
const path = require('path');
|
||
|
||
// 检查开发工具配置
|
||
const configPath = path.join(__dirname, '.dev-tools-config.json');
|
||
let eslintEnabled = false;
|
||
|
||
try {
|
||
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
||
eslintEnabled = config.tools?.eslint?.enabled === true;
|
||
} catch (error) {
|
||
console.warn('⚠️ 无法读取开发工具配置,ESLint将被禁用');
|
||
}
|
||
|
||
// 如果ESLint被禁用,返回空配置
|
||
if (!eslintEnabled) {
|
||
console.log('ℹ️ ESLint已在配置中被禁用,如需启用请运行: npm run scripts:enable');
|
||
module.exports = {};
|
||
return;
|
||
}
|
||
|
||
// ESLint正常配置
|
||
module.exports = {
|
||
root: true,
|
||
env: { browser: true, es2020: true },
|
||
extends: [
|
||
'eslint:recommended',
|
||
'@typescript-eslint/recommended',
|
||
'plugin:react-hooks/recommended',
|
||
],
|
||
ignorePatterns: ['dist', '.eslintrc.cjs', 'node_modules'],
|
||
parser: '@typescript-eslint/parser',
|
||
plugins: ['react-refresh'],
|
||
rules: {
|
||
'react-refresh/only-export-components': [
|
||
'warn',
|
||
{ allowConstantExport: true },
|
||
],
|
||
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
||
'@typescript-eslint/no-explicit-any': 'warn',
|
||
'react-hooks/rules-of-hooks': 'error',
|
||
'react-hooks/exhaustive-deps': 'warn',
|
||
},
|
||
}; |