npx
別名: npx コマンド
npm に同梱されたコマンド実行ツール。
プロジェクトの node_modules/.bin にあるコマンドを優先して実行し、無ければパッケージを npm のキャッシュへ取得してから実行する。
公開:
定義
npx は npm に同梱されたコマンド実行ツールで、npm パッケージが提供するコマンドをその場で実行する。
まずプロジェクトにインストール済みのコマンド(node_modules/.bin 配下)を探し、見つからなければそのパッケージを npm のキャッシュ内のフォルダへ取得してから実行する。
詳細
npm install -D typescript のようにプロジェクトへ入れたコマンドは PATH に載っていないため、tsc と直接打っても見つからない。npx tsc と書けば node_modules/.bin/tsc が実行される。
npm v7 以降の npx は内部で npm exec を使う作りに書き直されており、プロジェクトに無いパッケージを取得する前には確認を求める(-y で省略できる)。
よくある誤解
- npx は毎回最新版を取ってくる: キャッシュ済みの版が再利用される。
最新を使うならpkg@latestのようにバージョンを明示する(npx が古いキャッシュ版を実行して最新バージョンにならない)。 - コマンド名を書けば正しいパッケージが選ばれる: ローカルに無いときはコマンド名と同じ名前のパッケージを探す。
TypeScript が未インストールの状態でnpx tscを打つと、typescriptではなくtscという名前の別パッケージ(非推奨の古い版)を取りにいく。
パッケージ名が違うときはnpx -p typescript tscのように指定する。
関連
グローバルに入れたコマンドが見つからない場合は npm install -g したコマンドが command not found で実行できない を参照。package.json の scripts に書いて npm run から呼ぶ方法もある。