はじめに
本記事ではnpmとその周辺の知識をまとめたものになります。
なんとなく使っていたのでこの機会に学び直してみました〜〜
①npmとはなんだ
- Node.jsのパッケージを管理するツール。
- Node.jsに組み込まれているので、
brew install node
でNode.jsをインストールすればnpmも一緒にインストールされる。
②パッケージとはなんだ
- package.jsonに記述されたファイルやディレクトリのこと。
- モジュールが誕生した(細かく機能を分けて開発できるようになった)ことにより、よく使う機能を再利用できるようにしたもの。1から機能を作らなくても良いので効率良く開発することができる。
- パッケージを一言でまとめると、再利用できる機能の塊。
③つまり...?【npmの存在意義とは】
- 通常の開発ではパッケージは複数使うことになる。
- パッケージ同士は依存しており、依存関係が複雑過ぎて、到底人間が管理できるものではない。
- そこでパッケージを良い感じにインストールし管理してくれるのがパッケージ管理システムnpmである(神)。
例えばexpressというパッケージ1つを見ても、以下のように依存関係がたくさんあることがわかる。(パッケージを2~3使うだけでも膨大な依存関係になり手に負えないことがわかる。)⬇︎
node_modulesとはなんだ
- パッケージの依存関係が入っている場所。
- 通常膨大なファイル数になるので、チーム開発での共有やGitHubに上げることはない。
- チーム開発の際はGitHub等からクローンして、
npm install
やyarn
でnode_modulesを作る。 - package-lock.jsonやyarn.lockにバージョンが指定されており、これを参照してnode_modulesが作られるためチーム開発で環境を揃えることができる。
npmとyarnの違いはなんだ
- npmはJavaScriptの公式パッケージマネージャー。yarnは非公式のパッケージマネージャー。
- yarnはMeta社(元Facebook)が開発したもの。
- yarnの方がインストールが速い。(npmインストールは今でこそだいぶ速くなったが、初期の頃はとんでもなく遅かったらしい。)
- どちらを使うかは個人の好みによるっぽい。
- Rails6以降はWebpackerが標準になったことによってyarn(とNode.js 10.13.0〜)のインストールが必須になった。
npxとはなんだ
- node package executerの略。
- 自分のPCにパッケージをインストールせずに使うことができる。
- 例えば
npx create-nuxt-app test
のように、一度しか使わない時に便利。
おわりに
基本的な内容ですが、なんとなく使っている自分に危機感を抱いたのでまとめてみました。
なるべく噛み砕いて書いたつもりなのでどなたかのお役に立てれば幸いです。
間違っている箇所がありましたら教えてくださいませ〜〜
参考