본문 바로가기
Memo

[ESLint] Parsing error: Unexpected token

by r4bb1t 2021. 4. 15.
반응형

ESLint를 돌리는데 Parsing error: Unexpected token 라는 에러가 계속 떴습니다.

알아보니 ESLint의 기본 parser는 Espree로, 기본적으로 ECMA 버전이 5로 설정되어있기 때문에 그 이후 문법이나 Typescript 문법은 parse하면서 에러를 뿜을 수 있다고 합니다.

 

.eslintrc 파일을 만들어서,

 {
   "parser": "babel-parser"
 }

 

위 코드를 작성해 parser를 babel parser로 설정해주면 최신 ECMA 버전을 사용할 수 있습니다. 일반적으로는 이것만 추가하면 해결이 됩니다.

그런데 babel-parser는 Typescript 문법은 해석을 못 하는 것 같습니다. 저같은 경우에는 babel-parser로 parser를 바꾸어도 Typescript에서 타입을 단언하는 'as' 구문에서 오류가 났고 작업 특성상 타입 단언을 사용하지 않을 수 없었기 때문에 한참 검색하다가 typescript-eslint를 발견했습니다.

 

$ npm install --save-dev @typescript-eslint/parser
{
  "extends": [
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended"
  ],
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint"],
  "overrides": [
    {
      "files": ["*.js", "*.jsx"],
      "rules": {
        "@typescript-eslint/explicit-function-return-type": "off"
      }
    }
  ]
}

 

typescript eslint parser를 설치해 준 후 .eslintrc 파일을 위처럼 적어 주면 에러가 뜨지 않습니다.

반응형

댓글