npxとnpm-run-allでローカルモジュールを実行する

小ネタです。

npm管理下のプロジェクトで、なにかのモジュールのコマンドを叩きたいということがよくあります。

その場合、僕がよく使っていたのは、

  1. ./node_modules/.bin/(パッケージ名)
  2. package.jsonにnpm-scriptsを書いて npm run (script名)

でした。

npx

ところが、npm 5.2.0からは、npxというコマンドが利用可能になり上のどちらの方法よりもシンプルに使えるようになっていました。

npx (パッケージ名)

また、npxコマンドを使うと、ローカルのプロジェクトにインストールしていないモジュールのコマンドも、一度だけ実行することが出来ます。

npm-run-all

また、npm-scriptsをたくさん実行したいときがあると思います。その時は

npm run lint & npm run build:server & npm run build:client

などと書いたりします。

こちらもnpm-run-allというコマンドを利用すると、シンプルに書くことができます。

www.npmjs.com

npm install -D npm-run-all

してから、上記のようなコマンドであれば、

npm-run-all lint build:*

というふうにまとめることが可能です。

コマンドの実行時に、オプションとして

-sで順次実行に、-pで並列実行になるので、こちらも覚えて置くと良いかもしれません。

まとめ

ちょっとしたことでしたが、僕は最近まで知らなくて、いちいち./node_modules/.bin/(パッケージ名)などと書いていたので、その手間が省けて良いなとおもいました。
こういう日々の細々した事によって効率に違いが出てくるので、皆さんもそういった小ネタをどんどんアウトプットしていただければ嬉しいです!