npxは永続的なインストールは行わないが、実行のために一時的なダウンロード(実質的なインストール)は行う
Created:
Modified:
npx
はパッケージをインストールせずに実行できるという認識だったので、
Need to install the following packages:
xxxxxxxxxxxxxxxxxx
Ok to proceed? (y) y
という文言見て今さら不思議に思ったのでどういうものかと調べてみることにした。
厳密に言えば一時的にインストール(ダウンロード)される
パッケージをインストールせずに実行できる
というのはnpx
でよくある説明でこれをそのまま受け取っていたけど、どうやら思っていたのとちょっと違った文脈だった。
node_modules ディレクトリに恒久的に追加されるわけではない
通常のnpm i
のようにpackage.json
に依存関係として追加されたり、グローバルに利用可能なコマンドとしてシステムに登録されたりするわけではないらしい。
実行後に自動的にクリーンアップされる、あるいはキャッシュされる
npx
がダウンロードしたパッケージは、コマンドの実行が完了すると通常は自動的に削除されるか、次回以降の高速な実行のためにキャッシュされ、ディスク容量を占有し続けたり、手動でアンインストールする必要がない。
つまり、npx
は永続的なインストールは行わないが、実行のために一時的なダウンロード(実質的なインストール)は行うとのことだった。