Tengo un proyecto Node.js con una configuración de eslint existente, generé un nuevo proyecto next.js en el mismo proyecto, así que ahora tengo
📁 src 📄 .eslintrc.yml 📁 website 📄 .eslintrc.json¿Cómo podría configurar la configuración de eslint de next.js con la que ya tengo? Así es como se ve el existente:
env: es2020: true node: true extends: - eslint:recommended - plugin:@typescript-eslint/recommended parser: "@typescript-eslint/parser" parserOptions: sourceType: module plugins: - "@typescript-eslint" - import rules: no-duplicate-imports: error no-template-curly-in-string: warn no-unreachable-loop: warn camelcase: error curly: error eqeqeq: error no-console: error no-else-return: error no-empty-function: error no-eval: error no-new: error no-param-reassign: error no-return-await: warn no-unneeded-ternary: error no-useless-rename: error no-var: error prefer-arrow-callback: error prefer-const: error prefer-destructuring: error prefer-object-spread: error prefer-template: error block-spacing: error padding-line-between-statements: [error, { blankLine: "always", prev: "*", next: "return" }] "@typescript-eslint/explicit-module-boundary-types": off "@typescript-eslint/no-shadow": error import/order: [ error, { alphabetize: { caseInsensitive: true, order: asc }, groups: [[external, builtin], internal, parent, sibling, index], newlines-between: never, }, ]Decidí eliminar todo lo relacionado con eslint en el proyecto del sitio web e instalé eslint-config-next en el proyecto raíz:
env: es2021: true shared-node-browser: true extends: - eslint:recommended - plugin:@typescript-eslint/recommended - next/core-web-vitals - prettier parser: "@typescript-eslint/parser" parserOptions: sourceType: module plugins: - "@typescript-eslint" - import settings: next: rootDir: "./website" rules: no-duplicate-imports: error no-template-curly-in-string: warn no-unreachable-loop: warn camelcase: error curly: error eqeqeq: error no-console: error no-else-return: error no-empty-function: error no-eval: error no-new: error no-param-reassign: error no-return-await: warn no-unneeded-ternary: error no-useless-rename: error no-var: error prefer-arrow-callback: error prefer-const: error prefer-destructuring: error prefer-object-spread: error prefer-template: error block-spacing: error padding-line-between-statements: [error, { blankLine: "always", prev: "*", next: "return" }] "@typescript-eslint/explicit-module-boundary-types": off "@typescript-eslint/no-shadow": error import/order: [ error, { alphabetize: { caseInsensitive: true, order: asc }, groups: [[external, builtin], internal, parent, sibling, index], newlines-between: never, }, ] No estoy usando next lint de esta manera, pero linting debería funcionar bien de esta manera, si puedo obtener una mejor integración, estaría abierto a sugerencias.