TypeScriptのts-node実行エラー
nodeコマンドはfoo.tsのようなtsファイルを直接実行できないので、直接tsファイルを実行するにはts-nodeやtsxなどをインストールする必要があります。
# 実行可能
node foo.js
# 実行不可
node foo.ts
# 実行可能
ts-node foo.ts
# 実行可能
tsx foo.ts
ts-nodeを使用するにはnpmでts-nodeをインストールします。
TypeScriptなので、typescriptと@types/nodeのインストールも必要です。
npm i -D typescript @types/node ts-node
イントールしたら「ts-node foo.ts」で実行できます。
ts-node foo.ts
ts-node実行エラーについて
ts-nodeは実行時にエラーが発生することがあります。
エラーの原因は様々で、よくある原因は…
- tsconfig.jsonのmodule設定の問題
- package.jsonのtype設定の問題
- その他開発環境設定の問題
- ESMの問題
- etc.
上記の問題が原因でts-nodeがエラーになることがあります。
しかし、設定ファイルについて理解できていないと修正するのは難しいです。
開発の都合上、設定ファイルを変更できないケースもあります。
代わりにtsxをインストールする
tsxを使えばts-nodeと同じくTypeScriptを簡単に実行できます。
npmコマンドでインストールして実行する方法は以下の通りです。
npm i -D tsx
tsx foo.ts
グローバルインストールしておけば、プロジェクトフォルダ以外のTypeScriptファイルも直接実行できるので便利です。
npm i -g tsx
tsx foo.ts
さらにtsxにはts-nodeと違ってwatchモードが存在するので、修正するたびに実行結果が確認できます。
tsx --watch foo.ts
特に理由がなければts-nodeではなくtsxを使用することをオススメします。