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 より高速で、バージョン指定がより厳密という利点がある。
本当の収穫は定義そのものではなかった。毎日オートパイロットで打っていたコマンドを疑ってみたら、その裏側の仕組みをちゃんと理解できた——という体験のほうだ。これからも、引っかかった「お決まりのコード」は面倒がらずに調べにいく。そういう姿勢を持ち続けたい。