npx を使ってみました

Babel のページを見ていたら npx command という次の記載があって、気になっていたので使ってみました。

Note: If you do not have a package.json, create one before installing. This will ensure proper interaction with the npx command.

CLI · Babel

npx?

npx(1) – execute npm package binaries

npx - npm

npm のパッケージのバイナリーを実行するためのもののようです。

npx がなかったときは

バイナリーを実行させるような npm のパッケージって、グローバルにインストールさせるようなものがあります。

npm install gulp-cli -g

gulp.js

わたしは今までグローバルにパッケージをインストールしたくなくて、 gulp もローカルにインストールしてました。 でもバイナリーを実行する必要があるので、環境変数の PATH に ./node_modules/.bin を設定していました。

こうしておくと、

$ gulp

と入力するだけで、

$ ./node_modules/.bin/gulp

のバイナリーを実行してくれました。

npx を使うと

でも、 npx を使えば環境変数の PATH を設定する必要もなくなります。

$ npx gulp

と入力するだけで、

$ ./node_modules/.bin/gulp

のバイナリーを実行してくれます。

cowsay

バイナリーを npx で実行してみたいと思います。 ここでは cowsay を使ってみます。

cowsay インストールします。

$ npm install cowsay --save

SYNOPSIS

npx [options] <command>[@version] [command-arg]...

npx - npm

npx の引数にコマンドとコマンドに対する引数を渡してあげればいいみたいです。

npx で cowsay を実行します。

$ npx cowsay JavaScript FTW!
 _________________
< JavaScript FTW! >
 -----------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

実行できました。

終わり

on May 30 2017

v1.0.0 …

Releases · zkat/npx · GitHub

最初のリリースが 2017 年 5 月 30 日だったようで、もう 1 年も前からあったようです。

参考

この記事の中に記載されている $(npm bin) って初めて知りました。