오류 상황
ts를 컴파일하는 과정에서 ts컴파일과 node컴파일을 동시에 할 수 있는 ts-node를 설치한 후 실행했더니
(node:13192) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
C:경로\src\index.ts:3
export {};
^^^^^^
SyntaxError: Unexpected token 'export'
at wrapSafe (node:internal/modules/cjs/loader:1281:20)
at Module._compile (node:internal/modules/cjs/loader:1321:27)
at Module.m._compile (C:경로\src\index.ts:1618:23)
at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
at Object.require.extensions.<computed> [as .ts] (C:경로\src\index.ts:1621:12)
at Module.load (node:internal/modules/cjs/loader:1208:32)
at Function.Module._load (node:internal/modules/cjs/loader:1024:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
at phase4 (C:경로\src\bin.ts:649:14)
at bootstrap (C:경로\src\bin.ts:95:10)
이런 오류가 발생했다.
해결 방법
오류의 원인은 매우매우 간단했다.
"아몰랑 Node 20버전에선 지원 안 함."
그렇기에 간단하게 ts-node를 tsx로 대체하여 사용하면 모든 문제가 해결된다! (tsx도 ts-node와 똑같은 기능을 한다.)
- tsx 설치
npm install tsx -g
- tsx 실행
tsx ~.ts