【TypeScript】tsconfig.json에서 출력처를 설정했는데 반영되지 않는 당신에게

TypeScript에 입문했을 때에, ts파일의 컴파일 후의 출력처를 설정했을 것인데, 예상대로 출력되지 않는다고 하는 일이 있었습니다.
초학자 중에는 같은 손잡이를하는 분도 있을지도 모르기 때문에 공유합니다.

안심하세요. 설정은 틀리지 않기 때문에 (아마)



이번은 tsconfig.json에서 「출력처」를 설정했다고 가정합니다.
이런 식으로 기술하고 있는 것이 아닐까요?

tsconfig.json
{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es2015",
    "outDir": "./dist",
    "sourceMap": true,
    "strict": true
  },
  "include": [
    "src"
 ],
}

이번 문제가 되는 출력처에 관한 기술은, "outDir": "./dist" 의 부분.
이 경우 출력 대상은 tsconfig.json과 동일한 계층 구조에있을 dist 디렉토리가됩니다.

각 파일의 위치 관계는 다음과 같습니다.
┃
┣━ node_modules/
┣━ dist/ # 出力先
┣━ src/
┃     ┗━ index.ts
┣━ tsconfig.json
┣━ package-lock.json
┗━ package.json

그럼, Typescript를 처음 쓴 index.ts를 막상 컴파일.

bash
$ npx tsc ./src/index.ts

? ? ?

index.js여, 왜 거기에 있을까...(물론 dist 디렉토리 안은 비어 있습니다.)

결론 파일 이름을 지정해야합니다.



결론을 말하면, 「파일명」을 지정하지 않고 아래와 같이용으로 커멘드를 실행하는 것만으로 해결합니다.

bash
$ npx tsc

이것을 하고 싶었어.




공식 문서의 What is a tsconfig.json 에 이렇게 써 있습니다.

When input files are specified on the command line, tsconfig.json files are ignored.
번역) 명령 줄에서 입력 파일을 지정하면 tsconfig.json이 무시됩니다.

그렇다고 해서, 좋겠다고 생각해 파일명을 지정해 컴파일 하고 있었기 때문에, 출력처를 지정했는데 반영되어 있지 않다고 하는 우려에 있었습니다.

단지 이것만의 일이었습니다만, 20분 정도 고민해 버렸으므로, 같은 문제에 직면하고 있는 사람이 빠른 단계에서 여기에 도착해 주시기를 기원합니다.

좋은 웹페이지 즐겨찾기