できない.dev

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 から呼ぶ方法もある。

この記事は役立ちましたか?