tsconfigのmoduleResolution
以下2つをどのように紐づけるかという話
実際のディスク上のファイル
runtimeや、bundlerのmodule resolverに合わせて設定する必要がある
重要なこと
こっちを先に読んだほうがいいかも
TypeScriptのプロジェクトは登場する拡張子がやたらある
.js
, .ts
, .d.ts
.mjs
, .mts
, .d.mts
.cjs
, .cts
, d.cts
jsx
, .tsx
この辺をどのように解決するかというのを制御している
選択肢
node16
つまり、Node.js側の設定を参照する
nodenext
2024/4現在は node16
と同じ
bundler
あんまりよくわかっていない

Webpackなどのbundlerで使用されるmodule解決の挙動を再現する
>Node.js v12では、npmパッケージをインポートするための新しいモジュール解決機能(package.jsonの "exports "フィールドと "imports "フィールド)が導入され、多くのバンドルがESMインポートのより厳格なルールを採用することなく、これらの機能を採用しました。 ref
----↓基本使わなそう-----
node10
以前は node
だった
Node.js v12以前のmodule解決の挙動を再現する
classic
TypeScriptの最も古いモジュール解決モード
新規プロジェクトでは基本的に使用しない
参考
丁寧な解説