```=json // .eslintrc.json { "root": true, "ignorePatterns": ["**/*"], "plugins": ["@nx"], "overrides": [ { "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], "extends": ["eslint:recommended"], "rules": { "@nx/enforce-module-boundaries": [ "error", { "enforceBuildableLibDependency": true, "allow": [], "depConstraints": [ { "sourceTag": "*", "onlyDependOnLibsWithTags": ["*"] } ] } ], "semi": "error", "eqeqeq": ["error", "smart"] } }, { "files": ["*.ts", "*.tsx"], "extends": ["plugin:@nx/typescript", "plugin:@typescript-eslint/recommended", "standard-with-typescript"], "rules": { "react/jsx-no-useless-fragment": "off", "@typescript-eslint/no-throw-literal": "off", "@typescript-eslint/consistent-type-definitions": "off", "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/strict-boolean-expressions": "off", "@typescript-eslint/no-dynamic-delete": "off", "@typescript-eslint/naming-convention": "off", "@typescript-eslint/non-nullable-type-assertion-style": "off", "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/restrict-template-expressions": "off", "@typescript-eslint/no-confusing-void-expression": "off", "@typescript-eslint/triple-slash-reference": "off", "@typescript-eslint/no-misused-promises": "off", "@typescript-eslint/no-floating-promises": "off", "@typescript-eslint/prefer-nullish-coalescing": "off", "@typescript-eslint/promise-function-async": "off", "@typescript-eslint/no-empty-function": "warn", "@typescript-eslint/no-unused-vars": [ "warn", { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_", "caughtErrorsIgnorePattern": "^_" } ], "@typescript-eslint/semi": "error", "@typescript-eslint/type-annotation-spacing": "error", "@typescript-eslint/space-before-function-paren": "error", "@typescript-eslint/space-infix-ops": "error", "@typescript-eslint/no-use-before-define": "error", "@typescript-eslint/array-type": [ "error", { "default": "array" } ], "@typescript-eslint/member-delimiter-style": [ "error", { "multiline": { "delimiter": "comma", "requireLast": true }, "singleline": { "delimiter": "comma", "requireLast": false }, "multilineDetection": "brackets" } ], "@typescript-eslint/indent": [ "error", 2, { "SwitchCase": 1, "VariableDeclarator": 1, "outerIIFEBody": 1, "MemberExpression": 1, "FunctionDeclaration": { "parameters": 1, "body": 1 }, "FunctionExpression": { "parameters": 1, "body": 1 }, "CallExpression": { "arguments": 1 }, "ArrayExpression": 1, "ObjectExpression": 1, "ImportDeclaration": 1, "flatTernaryExpressions": false, "ignoreComments": false, "ignoredNodes": [ "TemplateLiteral *", "JSXElement", "JSXElement > *", "JSXAttribute", "JSXIdentifier", "JSXNamespacedName", "JSXMemberExpression", "JSXSpreadAttribute", "JSXExpressionContainer", "JSXOpeningElement", "JSXClosingElement", "JSXFragment", "JSXOpeningFragment", "JSXClosingFragment", "JSXText", "JSXEmptyExpression", "JSXSpreadChild" ], "offsetTernaryExpressions": true } ] } }, { "files": ["*.tsx"], "rules": { "react/self-closing-comp": "warn", "react/jsx-closing-bracket-location": ["warn", "tag-aligned"], "react/jsx-indent": ["warn", 2, { "checkAttributes": true, "indentLogicalExpressions": true }], "react/prop-types": "off", "react/jsx-indent-props": ["warn", 2], "react/jsx-no-useless-fragment": "off" } }, { "files": ["*.js", "*.jsx"], "extends": ["plugin:@nx/javascript", "standard"], "rules": {} }, { "files": ["*.spec.ts", "*.spec.tsx", "*.spec.js", "*.spec.jsx"], "env": { "jest": true }, "rules": {} } ] } ``` ``` { "npm.packageManager": "pnpm", "i18n-ally.localesPaths": ["apps/**/**/i18n/translations"], "i18n-ally.keystyle": "nested", "i18n-ally.sourceLanguage": "zh-TW", "i18n-ally.enabledParsers": ["json"], "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, "i18n-ally.enabledFrameworks": ["i18next", "react", "vscode"], "typescript.preferences.importModuleSpecifier": "project-relative", "cSpell.words": [ "clickaway", "fastpass", "navigations", "persistor", "Skus", "stylex", "stylexjs" ] } ```