typescript-eslint 구성 : .eslintrc 파일 'module'이 정의되지 않았습니다.

Aug 19 2020

typescript-eslint 시작하기 문서에 설명 된대로 새 프로젝트를 설정하고 있습니다. 그러나 내 .eslintrc.js파일에서 오류가 발생합니다.

'모듈'이 정의되지 않았습니다 .eslint (no-undef)

이제 구성 eslint:recommended에서 제거하면 extends이 오류가 사라집니다. 그러나 일반적인 규칙 은 ESLint에 의해 선택 debugger되거나 const iAmUnused = true선택되지 않으므로 약간 두더지처럼 느껴집니다.

ESLint 파일이 eslint:recommended활성화 된 프로젝트의 루트에있을 때 왜 선택 됩니까? 이 파일을 내 명령을 .eslintignore실행할 eslint때이 파일이 이미 자동으로 무시되었다고 표시 되기 때문에이 파일을 포함하고 싶지 않지만 🤷‍♂️

ESLINTRC :

module.exports = {
  root: true,
  parser: '@typescript-eslint/parser',
  parserOptions: {
    project: '*/tsconfig.json',
  },
  settings: {
    react: {
      version: 'detect',
    },
  },
  plugins: ['@typescript-eslint', 'jest', 'react', 'react-hooks'],
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
    'plugin:jest/recommended',
    'plugin:prettier/recommended',
    'plugin:react/recommended',
    'plugin:react-hooks/recommended',
    'prettier',
    'prettier/@typescript-eslint',
  ],
  rules: {
    'no-unused-vars': 2,
  },
  env: {
    browser: true,
    es6: true,
    jest: true,
  },
  overrides: [
    {
      files: ['**/*.tsx'],
      rules: {
        'react/prop-types': 'off',
      },
    },
  ],
};

TSConfig :

{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "declaration": true,
    "declarationDir": "build",
    "jsx": "react",
    "lib": ["es6", "dom", "es2016", "es2017"],
    "module": "esnext",
    "moduleResolution": "node",
    "noEmit": true,
    "resolveJsonModule": true,
    "rootDir": "./src",
    "rootDirs": ["./src"],
    "sourceMap": true,
    "strict": true,
    "target": "es5"
  },
  "include": ["./src"],
  "exclude": ["node_modules", "build", "dist", "src/**/*.stories.tsx", "src/**/*.test.tsx"]
}

답변

6 PhilLucks Aug 21 2020 at 02:49

다음 env에서 업데이트해야하는 것 같습니다.

env: {
    browser: true,
    es6: true,
    jest: true,
  },

오류를 해결하기 위해 포함 node: true합니다 module.

BradZacher Aug 20 2020 at 12:51

https://eslint.org/docs/user-guide/configuring#specifying-environments

프로젝트와 관련된 환경을 지정해야합니다.

이 경우 commonjs환경 을 추가 할 수 있습니다.

no-undefTypeScript 자체에서 이미 다루고있는 수표이므로 규칙을 해제하는 것을 고려할 것입니다.