npm
言わずと知れたNode JSのパッケージマネージャ。
npm install
してパッケージをインストールし利用する。
npx
Node Package Executerの略
npm install
していない状態でもパッケージをインストールし実行して最後に消してくれる。
平たく言うと、インストールしていないパッケージを実行できます。
例えば、angular/cliやcreate-react-appなどのCLIをnpm install -g
する必要ない = グローバルを汚染せずに実行できます。
npmでやると
npm install -g @angular/cli # グローバルインストールしないといけない
ng new project-name
npm install -g create-react-app # グローバルインストールしないといけない
create-react-app project-name
私は普段nでNodeのバージョンを切り替えてますが、グローバルインストールしたパッケージのバージョンまで切り替えできないので困ってました(複数プロジェクトに関わっていて、それぞれで利用しているangular/cliのバージョンが違った)
この問題がnpx
を使うと解決できます。
npxでやると
# 一時的にインストールされ、ng new実行後に消される
npx -p @angular/cli ng new project-name
cd project-name
ng # command not found. 削除されてるので
npm run ng # OK. package.jsonにローカルのngコマンドが登録されてる
# 同じく一時的にインストールされ、Reactアプリケーション作成後に削除される
npx create-react-app project-name
今までリファレンス等見て何も考えずにnpxを実行してましたが、こういう意味だったんですね。
超便利。