ダークサイドにようこそ!

ブロググロブブログ

Next.js 環境の Node.js で ts ファイルを実行する

Next.js 製アプリの Node.js 環境で軽めの ts ファイルを実行したいとき(DB用のシーダーなど)、詰まったので備忘録です。

※Node 23 からTS実行できるらしいのですが、そちらはまだ試してません。

www.totaltypescript.com

 

  • そのままだとTypeScript動かせないのでts-nodeをインストール。
  • コード内のimport文でエラー。
    • Next.jsデフォルト設定だとtsconfig.jsonのcompilerOptionsで「"module": "esnext"」となっているが、Node.jsはデフォルトのCommonJS環境(require使う方)で動作している。このため、ts-nodeは実行対象のtsファイルをトランスパイルする際もimport/export文をそのまま残しエラーとなっていた?
    • 詳しい方いたらコメントいただけると助かります。
  • tsconfig.jsonにてts-node用のcompilerOptionsを追加し「"module": "CommonJS"」を追加して対応。
  • import元のコードでパス指定にエイリアス使ってる箇所「"@/hoge"」でエラー。
    • nodeやts-nodeは@で始まるようなパスを適切に解釈してくれないっぽい。
  • tsconfig-pathsをインストールして対応。

 

参考記事のみなさま。

typescriptbook.jp

zenn.dev

qiita.com