webpack を使っていると typescript の module 指定は、ESM を treeshake するために "module": "esnext" としたい。 しかし、ts-node を前提としたユーティリティスクリプトを作っていると、"module": "commonjs" としないと実行に失敗するようになってしまう。ts-jest も同様。 ts-node に関しては、引数で compilerOptions を書き換える方法があり、次のようになる。 yarn ts-node -O '{"module":"commonjs"}' script/x.ts これだと常にこの引数を付けて実行する必要があり、不便。 ts-loader の configFile TypeStrong/ts-loader: TypeScript loader for webpack をちゃんと読むと、