NodeJS
의 떠오르는 프레임워크이다.
TypeScript
를 지원하고 있으며, 순수 JavaScript
도 지원하지만, 해석을 위해 트랜스 파일러인 Babel
을 필요로 한다.
TIP!
트랜스파일러란 무엇이며? 왜 쓰이는 걸까?
트랜스 파일러(TransPiler)는 소스대 소스 컴파일러라고 하며, 한 프로그래밍 언어로 작성된 소스코드를 읽고 다른 언어로 동등한 코드를 생성하는 도구이다.
대표적으로Babel
과 정적의 타입을 가진TypeScript
등이 있다.
공식 페이지에서 NestJS 프로젝트를 시작하는 명령어이다.
npm i -g @nestjs/cli
nest new project-name
위 경로의 tsconfig.json
에서 elint
를 전혀 해석하지 못하고있다.
.eslintrc.js
파일을 찾아서 parserOptions
에 다음 부분을 추가해준다.
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
},
그리고 껐다키면 잘된다.
StackOverflow
에서 나온 답변은 다음과 같다.
By default, the projects (in parserOptions) are resolved relative to the current working directory.
If you run eslint in a different working directory to the folder containing tsconfig.json,
@typescript-eslint/parser will not be able to locate the file.
To fix this, you can set tsconfigRootDir to __dirname,
which would make the parser resolve the project configuration relative to .eslintrc.js:
기본적으로 프로젝트(parserOptions 포함)는 현재 작업 디렉토리를 기준으로 확인됩니다. tsconfig.json이 포함된 폴더와 다른 작업 디렉터리에서 eslint를 실행하면 @typescript-eslint/parser가 파일을 찾을 수 없습니다.
라고 한다.
아무래도 Git Repository
에서 클론해온 루트 폴더 내에 package.json
이 존재하고, 하필이면 거기다 또 NestJS
프로젝트를 생성했기 때문에.. 루트 디렉토리를 현재의 디렉토리 기준으로 잡았다.
package.json
과 nodeModule
폴더를 싹 지우면 문제 없고, 만약 필요하다면 아래의 속성을 추가해주면 된다.
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
},
tsconfigRootDir: __dirname,
꼭 추가하자.