ts-nodeのエラーの原因

Typescriptをビルドせずに実行するために、久々にts-nodeを使ってみたらエラーが出た。

$ npx ts-node script.ts 
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /home/xxxx/.../script.ts
...

以下の2点を対処したら解決した。

  • package.jsonの"type"を"commonjs"にする、あるいは削除する。
  • tsconfig.jsonの"module"を"CommonJS"にする。

なんとなくviteで環境構築したので、ESNextやmoduleの設定になっていたのが原因の様子。

なお、最近は、ts-nodeやts-node-devより、tsxが流行りの様子。