はじめに
tsファイルをトランスパイルすることなく実行しようと試みたのですが、つまったのでまとめます。
問題
以下のコマンドを実行したところエラーが出ました。
- パターン1
npx ts-node --esm 'ファイルパス'
- パターン2
node --loader ts-node/esm 'ファイルパス'
- パターン3
ts-node-esm 'ファイルパス'
共通したエラーが発生
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"
解決策
ts-nodeではなく、tsxというパッケージを使う。
ちなみにnodeのバージョンは20.10.0です。
tsxをインストール
npm i -D tsx
実行
npx tsx 'ファイルパス'
終わりに
おそらくnodeのバージョンの違いが原因ではないかと思います。原因が明確に分かっていないので詳しい方がいれば教えていただけると幸いです。
node18系ではこちらの方の記事が参考になるかもしれないです!
参考