Devlog/TypeScript
TypeScript '--isolatedModules' 에러 핸들링하기
myalog
2024. 4. 18. 21:40
TypeScript 프로젝트를 리팩토링하면서 만난 에러를 핸들링하고, 이를 기록하고자 한다.
리팩토링을 진행하던 중 더이상 사용하지 않는 파일이 있었고, 컴파일 에러가 발생했다.
ERROR in src/utils/handler.ts
TS1208: 'handler.ts' cannot be compiled under '--isolatedModules' because it is considered a global script file. Add an import, export, or an empty 'export {}' statement to make it a module.
'handler.ts'는 전역 스크립트 파일로 간주되므로 '--isolatedModules' 에서 컴파일 할 수 없으며, import나 export 또는 빈 export {} 문을 추가하여 모듈로 만들라고 한다.
TypeScript는 기본적으로 import/exports가 없는 파일을 레거시 취급을 하고,
이러한 파일들은 모듈이 아니기 때문에 전역 스크립트 파일이 된다. (전역 네임스페이스에 병합됨)
config 파일에서 isolatedModules 옵션을 false 값으로 변경하거나, 빈 파일을 생성하여 export {} 을 작성 후 저장하여 모듈로 만들어 해결한다.
// tsconfig.json
{
"compilerOptions": {
...
"isolatedModules": false, // true로 되어있는 boolean 값을 false로 변경
...
}
// handler.ts
export {};
나는 config 옵션을 건들이지 않고 사용하지 않게 된 파일에 export {} 를 작성하여 해결했다.
⭐️ TL;DR
트러블 슈팅
- TypeScript 컴파일 에러 '--isolatedModules' 문제
해결 방법
- 빈 파일을 생성하여 export {} 를 입력 후 저장하여 해결
- tsconfig.json 파일에서 isolatedModules 옵션 값을 false 로 변경하여 해결
<Ref>
https://www.typescriptlang.org/ko/docs/handbook/compiler-options.html
https://stackoverflow.com/questions/56577201/why-is-isolatedmodules-error-fixed-by-any-import