package.jsonのscriptsの仕組み、「npm run xxx」でなぜ動く?

nodejsで開発している、package.jsonのscriptsに以下のようなコマンドが書かれていることがありますね。これどうやって動いているかご存じですか?

  "scripts": {
    "test": "jest"
  },

これ、実はjestというライブラリをインストールすると、「node_modules/.bin/」にプログラムがインストールされているのです。lsした結果はこんな感じ。jest以外もeslintなどもありますね。

つまり、package.jsonのscriptsで実行している内容は、「.bin」配下のプログラムを実行しているということなのですね。

なので、いちいちjestを動かすときに、scriptsにコマンドを書かなくても、直接ターミナルから実行することができます。以下のような感じです。

$ ./node_modules/.bin/jest

いかがでしょうか?説明では省かれがちな、scriptsですが、仕組みを理解していると考え方の幅が広がるので、良いと思います。

最新情報をチェックしよう!