npx tsc
の代替として pnpm dlx tsc
を呼び出すと意味不明なエラーが返ってきます:
$ pnpm dlx tsc
This is not the tsc command you are looking for
To get access to the TypeScript compiler, tsc, from the command line either:
- Use npm install typescript to first add TypeScript to your project before using npx
- Use yarn to avoid accidentally running code from un-installed packages
これはnpx
がローカルを探索した後に必要であればレジストリからダウンロードしてくるのに対し、pnpm dlx
はローカルを探索せずにレジストリから同名のパッケージをロードして実行するからです。
では、pnpm dlx typescript
はどうでしょうか。実はこれも失敗します。
$ pnpm dlx typescript
Packages: +1
+
Progress: resolved 1, reused 1, downloaded 0, added 1, done
ERR_PNPM_DLX_MULTIPLE_BINS Could not determine executable to run. typescript has multiple binaries: tsc, tsserver
Try one of the following:
pnpm --package=typescript dlx tsc
pnpm --package=typescript dlx tsserver
というわけで、$ pnpm --package=typescript dlx tsc
を使うのは一つの正解です。
あるいは、すでにdevDependenciesに加えている場合はpnpm exec tsc
でも良いです。
ただし、pnpm exec
は先にpnpm install
を走らせていないと失敗します。