Files
Genarrative/.eslintrc.cjs
T
kdletters 387a1c26e3 完成全量检查整改
清理已跟踪原始日志与个人本地配置
修复前后端有效门禁、测试和构建问题
补齐生产 Jenkins、SpacetimeDB 本地命令与文档约束
收紧图片编辑器状态、附件与媒体引用测试
排除已下线旧创作入口测试并清理 warning
2026-07-17 16:56:46 +08:00

151 lines
3.6 KiB
JavaScript

const globals = require('globals');
module.exports = {
root: true,
env: {
es2022: true,
},
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
ecmaFeatures: {
jsx: true,
},
},
globals: {
...globals.browser,
...globals.node,
},
overrides: [
{
files: ['scripts/**/*.{ts,js,mjs,cjs}'],
rules: {
'no-console': 'off',
},
},
{
files: ['**/scripts/**/*.{ts,js,mjs,cjs}'],
rules: {
'no-console': 'off',
},
},
{
files: ['**/*.test.{ts,tsx,js,mjs,cjs}'],
rules: {
'no-console': 'off',
'unused-imports/no-unused-vars': 'off',
},
},
{
files: ['miniprogram/**/*.js'],
globals: {
App: 'readonly',
},
},
{
files: [
'apps/admin-web/src/pages/*.tsx',
'src/components/platform-entry/PlatformMobileHomeWelcomeDialog.tsx',
],
rules: {
'react-refresh/only-export-components': 'off',
},
},
{
files: ['src/components/platform-entry/PlatformEntryFlowShellImpl.tsx'],
rules: {
'react-hooks/exhaustive-deps': 'off',
},
},
{
files: ['src/components/game-canvas/**/*.tsx'],
rules: {
'react-refresh/only-export-components': 'off',
},
},
{
files: ['src/components/GameShell.tsx', 'src/hooks/useCombatFlow.ts'],
rules: {
'simple-import-sort/imports': 'off',
'simple-import-sort/exports': 'off',
},
},
{
files: ['src/components/match3d-runtime/Match3DPhysicsBoard.tsx'],
rules: {
'react-refresh/only-export-components': 'off',
},
},
],
plugins: [
'@typescript-eslint',
'react-hooks',
'react-refresh',
'simple-import-sort',
'unused-imports',
],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
'prettier',
],
ignorePatterns: [
'dist',
'dist_check',
'dist_check_monster_position',
'coverage',
'node_modules',
'server-rs/target',
'server-rs/target-*',
'apps/desktop-shell/src-tauri/target',
'target',
'src/components/CharacterAnimator.tsx',
'src/components/jump-hop-runtime/**',
'src/components/match3d-runtime/**',
'src/components/rpg-creation-editor/**',
'src/components/rpg-entry/**',
'src/components/rpg-runtime-shell/**',
'src/hooks/rpg-runtime-story/**',
'src/prompts/customWorldPrompts.ts',
'src/services/ai.ts',
'src/services/miniGameDraftGenerationProgress.ts',
'src/services/puzzle-clear/**',
'src/services/recommendedRuntimeGuestLaunch.test.ts',
'src/data/sceneEncounterPreviews.ts',
'public/Icons',
'media',
'.codex-logs',
'*.log',
'.preview.*',
'temp-build-goal-check/**',
'tmp_*',
'tmp/**',
'npc-editor-*',
'temp-write-check.txt',
'**/__pycache__/**',
'*.timestamp-*.mjs',
],
rules: {
'@typescript-eslint/no-var-requires': 'off',
'react-hooks/rules-of-hooks': 'error',
'react-refresh/only-export-components': ['error', {allowConstantExport: true}],
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
'@typescript-eslint/no-unused-vars': 'off',
'unused-imports/no-unused-imports': 'error',
'unused-imports/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
},
],
'no-constant-condition': 'error',
'no-console': ['error', {allow: ['warn', 'error']}],
'no-useless-escape': 'error',
'prefer-const': 'error',
},
};