Syntax error: Cannot read file '/tsconfig.json' 해결하기

김용희·2024년 4월 8일

[project] Art Friendly

목록 보기
6/14

프로젝트 진행 중 버셀에 배포 중 이런 오류가 떴습니다.

원인

원인은 Cannot read file '/tsconfig.json'라는 오류와 같이 루트 디렉토리에서 tsconfig.json을 찾을 수 없다는 것이었습니다.

서칭을 해본 결과 eslintrc.json에서 tsconfig.json의 위치를 설정하는데 생긴 오류라는 것을 확인하였습니다.

제가 진행중인 프로젝트의 경우 루트 디렉토리에서 react-native 폴더와 react 폴더로 나뉘어 루트 디렉토리에서 tsconfig.json을 찾을 수 없었고,

vercel 배포의 경우 리액트 폴더를 루트 디렉토리로 정하여 배포가 가능하나 로컬에선 루트가 react 폴더보다 상위이므로 eslintrc.json에서 tsconfig.json의 위치를 수정할 경우 한쪽에서 오류가 해결되면 한쪽에선 오류가 나게 되었습니다.

조사결과

찾아본 해결책들

  • parserOptions에서 project 설정
  • parserOptions에서 tsconfigRootDir 설정

이 해결책 들은 제 경우엔 결국 한쪽에서 오류가 나오게 되었습니다.

최종 해결책

stackoverflow를 찾아보던 중 방법을 찾았습니다.
https://stackoverflow.com/questions/64933543/parsing-error-cannot-read-file-tsconfig-json-eslint

바로 루트 디렉토리에 .vscode 디렉토리를 생성한 후 settings.json 파일을 생성하여 eslint.workingDirectories를 설정하는 것입니다.

// .vscode/settings.json

{
  "eslint.workingDirectories": ["rn", "web"]
}

루트에서 디렉토리가 나뉠 경우 특정 디렉토리에서만 eslint가 작동할 수 있도록 하는 설정입니다.

이렇게 설정하면 배포 시에도 로컬에서도 정상적으로 tsconfig.json을 인식할 수 있습니다.

0개의 댓글