1.6K WORDS · KOHTA KOUCHI
npmとnpxの違い、説明できますか?
localhost を立てるのに、なんとなく両方打っていました。それが気になって、きちんと調べ直してみた話です。
大学に通いながらフロントエンドの勉強をしているのですが、localhost を立てるたびに npm と npx をなんとなく両方打っていました。でも、その違いを自分の言葉で説明できない。そこが妙に引っかかってしまって、一度きちんと調べ直すことにしました。
npm は node package manager の略で、Node.js をインストールすると一緒に使えるようになるパッケージ管理ツールです。プロジェクトが依存するパッケージを管理し、node_modules フォルダにインストールしてくれます。package.json を、ディスク上で実際に動くライブラリ群に変えてくれる存在、と言えると思います。
npx は node package executer の略で、npm 5.2.0 から同梱されています。いちばんの特徴は、インストールしていないパッケージでも実行できること。必要なものを探してきて、インストールし、実行して、後片付けまでやってくれます。だから package.json の scripts に書いたり node_modules/.bin を経由したりしなくても、`npx vue create プロジェクト名` のように直接実行でき、依存関係もその場で解決されます。
ついでに調べたのですが、yarn は Facebook が 2016 年に公開した JavaScript のパッケージマネージャで、npm より速く、バージョン指定がより厳密という利点があります。
いちばんの収穫は、定義そのものよりも、毎日オートパイロットで打っていたコマンドを一度疑ってみたら、その裏側の仕組みまで理解できた、という体験のほうでした。これからも、引っかかった「お決まりのコマンド」は面倒くさがらずに調べにいきたいです。