npxで実行するコマンドを決められないnpmエラーの直し方
npx でコマンドを実行して npm error could not determine executable to run と出たら、npm が、npx に渡されたパッケージから実行するコマンドを1つに決められなかった、という意味です。パッケージにコマンドが1つもないか、コマンドが複数あってパッケージ名と同じ名前のものがないときに出ます。コマンドを持っている別のパッケージを指定するか、--package でパッケージを指定してコマンド名を書けば、エラーは消えます。
Tailwind CSS 4 を入れるときに、古い手順のまま npx tailwindcss init を実行した場面や、TypeScript のコンパイラを npx typescript で呼ぼうとした場面で出るエラーです。私は検証環境でこのエラーを起こし、出たメッセージの全文と、直すと消えることを確かめました。
検証環境は Ubuntu 24.04 です。主に Node.js 22.23.4(npm 10.9.9)で試し、比べるために Node.js 24.22.1 に付いてくる npm 11.19.1 と、npm 9.9.4 でも同じエラーを起こしました。使ったパッケージは tailwindcss 4.3.5 と 3.4.19、@tailwindcss/cli 4.3.5、typescript 5.9.3 です。Windows と macOS、yarn や pnpm の dlx は試していません。
エラーの全文
npm 10.9.9 で npx -y tailwindcss init を実行すると、次の2行だけが出て止まりました(終了コードは1。ログのパスは ~/.npm/_logs に置き換えています)。
$ npx -y tailwindcss init
npm error could not determine executable to run
npm error A complete log of this run can be found in: ~/.npm/_logs/2026-11-14T01_24_57_868Z-debug-0.log
1行目は「実行するコマンドを決められなかった」という意味です。どのパッケージの何が足りないのかは書かれていません。npm 11.19.1 で npx -y tailwindcss@4.3.5 --help を実行しても、同じ2行でした。
npm 9.9.4 では、行頭が npm ERR! になり、2行のあいだに空行が入ります。次のコマンドは、npx で npm 9.9.4 を取ってきて、その npm exec で tailwindcss@4.3.5 を実行したものです(パスは同じように置き換えています)。
$ npx -y npm@9.9.4 exec -y -- tailwindcss@4.3.5 --help
npm ERR! could not determine executable to run
npm ERR! A complete log of this run can be found in: ~/.npm/_logs/2026-11-14T01_25_15_994Z-debug-0.log
npx が実行するコマンドを決めるしくみ
npx は、最初に渡された名前をパッケージ名として扱い、そのパッケージの package.json の bin(パッケージが用意しているコマンドの一覧)から、実行するコマンドを選びます。npm exec の公式ドキュメントには、選び方が次のように書かれています。
binが1つだけなら(または、すべてが同じコマンドの別名なら)、そのコマンドを使うbinが複数あり、その中にパッケージ名(@scope/を除いた部分)と同じ名前があれば、それを使う- どちらでもなく1つに決まらなければ、エラーで終わる
npm 10.9.9 の中でこのエラーを出しているのは、libnpmexec の get-bin-from-manifest.js です。中身は上の3つの規則をそのまま書いたもので、どれにも当たらないときに could not determine executable to run を投げています。
つまり、原因は「パッケージに bin がない」か「bin が複数あって、パッケージ名と同じ名前がない」のどちらかです。パッケージの bin は、npm view <パッケージ名> bin で確かめられます。
Tailwind CSS 4 の tailwindcss には、コマンドがない
tailwindcss の 4.3.5 で bin を見ると、何も表示されませんでした。コマンドを1つも持っていません。
$ npm view tailwindcss@4.3.5 bin
検証した時点の最新版も 4.3.5 だったため、バージョンを付けない npx -y tailwindcss init でも、上のエラーになりました。一方、3 系の最後の 3.4.19 を指定すると、エラーにならずに CLI が動きました(先頭の3行だけ表示しています)。
$ npx -y tailwindcss@3.4.19 --help | head -3
tailwindcss v3.4.19
Tailwind CSS 4 では、CLI が @tailwindcss/cli という別のパッケージに分かれました。Tailwind CSS のアップグレードガイドの、Tailwind CLI を使う場合の節にも、ビルドのコマンドを npx tailwindcss から npx @tailwindcss/cli に変えるよう書かれています。@tailwindcss/cli の bin は tailwindcss の1つだけなので、npx はこれを実行します。
$ npm view @tailwindcss/cli@4.3.5 bin
{ tailwindcss: './dist/index.mjs' }
$ npx -y @tailwindcss/cli@4.3.5 --help | head -5
≈ tailwindcss v4.3.5
Usage:
tailwindcss [--input input.css] [--output output.css] [--watch] [--poll=ms]
[options…]
@tailwindcss/cli で CSS をビルドすると、エラーは出ずに完了しました。input.css に @import "tailwindcss"; を書き、index.html で text-red-500 を使った状態で試し、output.css に text-red-500 が入ったことも確かめています。
$ npx @tailwindcss/cli -i input.css -o output.css
≈ tailwindcss v4.3.5
Done in 32ms
tailwindcss を @tailwindcss/cli に変えても、init は動きません。npx @tailwindcss/cli init は Invalid command: init と使い方を表示して、終了コード1で終わりました。4.3.5 の CLI が受け付けるのは、ビルドと canonicalize だけでした。
typescript には、コマンドが2つある
typescript の 5.9.3 は、tsc と tsserver の2つのコマンドを持っています。どちらもパッケージ名の typescript とは違うので、npx は1つに決められません。
$ npm view typescript@5.9.3 bin
{ tsc: 'bin/tsc', tsserver: 'bin/tsserver' }
$ npx -y typescript@5.9.3 --version
npm error could not determine executable to run
npm error A complete log of this run can be found in: ~/.npm/_logs/2026-11-14T01_25_02_260Z-debug-0.log
パッケージ名とコマンド名が違うときは、--package でパッケージを指定し、その後ろに実行したいコマンドの名前を書きます。npm exec の公式ドキュメントにある、パッケージ名と違う名前のコマンドを実行する例と同じ書き方です。同じ typescript@5.9.3 で、エラーは出なくなりました。
$ npx -y --package=typescript@5.9.3 tsc --version
Version 5.9.3
npx では、--package などのオプションは、コマンド名より前に書きます。npm exec の公式ドキュメントにある「npx と npm exec の違い」の節に、npx で実行するときは、すべてのオプションを位置引数(ここではコマンド名)より前に置く必要があると書かれています。
プロジェクトに入れたパッケージでも、同じ規則で決まる
プロジェクトに npm install で入れたパッケージを npx で実行するときも、同じエラーが出ます。typescript@5.9.3 と tailwindcss@4.3.5 を入れたプロジェクトで試しました。node_modules/.bin に入ったコマンドは tsc と tsserver だけです。
$ ls node_modules/.bin
tsc
tsserver
$ npx typescript --version
npm error could not determine executable to run
npm error A complete log of this run can be found in: ~/.npm/_logs/2026-11-14T01_25_06_746Z-debug-0.log
$ npx tailwindcss --help
npm error could not determine executable to run
npm error A complete log of this run can be found in: ~/.npm/_logs/2026-11-14T01_25_06_985Z-debug-0.log
プロジェクトに入っているときは、コマンドの名前で呼べば動きます。npx tsc --version は Version 5.9.3 を表示しました。
Tailwind CSS のほうは、@tailwindcss/cli もプロジェクトに入れると、node_modules/.bin に tailwindcss が増え、同じ npx tailwindcss --help がエラーにならずに動きました(先頭の3行だけ表示しています)。
$ npm install --no-audit --no-fund @tailwindcss/cli@4.3.5
added 27 packages in 1s
$ ls node_modules/.bin
jiti
tailwindcss
tsc
tsserver
$ npx tailwindcss --help | head -3
≈ tailwindcss v4.3.5
Usage:
エラーが出たら、まず npm view <パッケージ名> bin か ls node_modules/.bin で、実行できるコマンドの名前を確かめてください。名前が分かれば、コマンドを持つパッケージを指定するか、--package とコマンド名を組み合わせるかを選べます。





