概要
パッケージを一時的にインストールしてコマンドを実行できるnpxコマンドであるが、コマンドの実行には優先順位があるらしいので簡単にまとめる。
疑問
npxコマンドを使っていて疑問に思った。package.jsonにnpxで指定するコマンドのパッケージのバージョン記載がされていてローカルに存在する場合、どっちのバージョンでコマンドが実行されるのだろうか?
答え
ちょっと調べてみた感じ、下記のような優先順位でnpxはコマンドを実行しているらしい。
- ローカルのnode_modulesディレクトリを探索して、パッケージが存在したらそのパッケージでコマンドを実行
- グローバルを探索して、パッケージが存在したらそのパッケージでコマンドを実行
- リモートを探索して、パッケージをインストールして、そのパッケージでコマンドを実行
参考文献
Executes either from a local node_modules/.bin, or from a central cache, installing any packages needed in order for to run.