Works by

Ren's blog

アプリケーションバックエンド中心に書いていきます

【Node.js】npxでローカルにパッケージを一時的にインストールして実行する

f:id:rennnosukesann:20181223181823p:plain

npx

npx はローカルにインストールしたnpmパッケージバイナリを直接実行できるコマンドです。npm5.2.0より導入されました。

このnpx にはパッケージを一時的にだけインストールしてその機能を実行する機能が備わっているので、 今回はその機能について紹介します。

npx のインストール

まずは npm 自体のアップデートを行います。

$ npm install -g npm 

5.2.0以上であることを確認。

$ npm --version
6.2.0

確認できたら、 npx をインストールします。

$ npm install -g npx

インストールしていないパッケージを実行

ローカルにインストールしていないパッケージを実行することができる npx ですが、一旦はパッケージのインストールが走ります。 が、コマンド実行後インストールされたままにならず削除されるので、ローカルの node_modulespackage.json を汚しません。

以下はAngular CLI のバージョンチェックを実行している例です。 

$ npx @angular/cli --version


     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 7.1.4
Node: 8.11.3
OS: darwin x64
Angular: 
... 

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.11.4
@angular-devkit/core         7.1.4
@angular-devkit/schematics   7.1.4
@schematics/angular          7.1.4
@schematics/update           0.11.4
rxjs                         6.3.3
typescript                   3.1.6

実行したパッケージのコマンドを実行してみるとできないことがわかります。 パッケージがインストールされず、そのまま破棄されていることがわかります。

# インストールはされていない
$ ng
zsh: correct 'ng' to 'bg' [nyae]? n

npmパッケージを手軽に、試しに実行したい場合などに便利です。

参考文献

www.npmjs.com