import neostandard from 'neostandard'; /** 尾随逗号 */ const commaDangle = val => { if (val?.rules?.['@stylistic/comma-dangle']?.[0] === 'warn') { const rule = val?.rules?.['@stylistic/comma-dangle']?.[1]; Object.keys(rule).forEach(key => { rule[key] = 'always-multiline'; }); val.rules['@stylistic/comma-dangle'][1] = rule; } /** 三元表达式 */ if (val?.rules?.['@stylistic/indent']) { val.rules['@stylistic/indent'][2] = { ...val.rules?.['@stylistic/indent']?.[2], flatTernaryExpressions: true, offsetTernaryExpressions: false, }; } /** 支持下划线 - 禁用 camelcase 规则 */ if (val?.rules?.camelcase) { val.rules.camelcase = 'off'; } /** 未使用的变量强制报错 */ if (val?.rules?.['@typescript-eslint/no-unused-vars']) { val.rules['@typescript-eslint/no-unused-vars'] = ['error', { argsIgnorePattern: '^_', varsIgnorePattern: '^_', caughtErrorsIgnorePattern: '^_', }]; } return val; }; /** 忽略的文件 */ const ignores = [ 'node_modules', '**/dist/**', 'launcher', ]; const options = neostandard({ ts: true, ignores, semi: true, // 强制使用分号 }).map(commaDangle); export default options;