LoginSignup
5
1

More than 1 year has passed since last update.

なんとなくnpmを使うのはもう終わりにする。

Last updated at Posted at 2022-07-09

はじめに

本記事ではnpmその周辺の知識をまとめたものになります。
なんとなく使っていたのでこの機会に学び直してみました〜〜:hatching_chick:

①npmとはなんだ

  • Node.jsのパッケージを管理するツール。
  • Node.jsに組み込まれているので、brew install nodeでNode.jsをインストールすればnpmも一緒にインストールされる。

②パッケージとはなんだ

  • package.jsonに記述されたファイルやディレクトリのこと。
  • モジュールが誕生した(細かく機能を分けて開発できるようになった)ことにより、よく使う機能を再利用できるようにしたもの。1から機能を作らなくても良いので効率良く開発することができる。
  • パッケージを一言でまとめると、再利用できる機能の塊。

package.png
※イメージ

③つまり...?【npmの存在意義とは】

  • 通常の開発ではパッケージは複数使うことになる。
  • パッケージ同士は依存しており、依存関係が複雑過ぎて、到底人間が管理できるものではない
  • そこでパッケージを良い感じにインストールし管理してくれるのがパッケージ管理システムnpmである(神)。

例えばexpressというパッケージ1つを見ても、以下のように依存関係がたくさんあることがわかる。(パッケージを2~3使うだけでも膨大な依存関係になり手に負えないことがわかる。)⬇︎
express.png

node_modulesとはなんだ

  • パッケージの依存関係が入っている場所
  • 通常膨大なファイル数になるので、チーム開発での共有GitHubに上げることはない
  • チーム開発の際はGitHub等からクローンして、npm installyarnで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のように、一度しか使わない時に便利

おわりに

基本的な内容ですが、なんとなく使っている自分に危機感を抱いたのでまとめてみました。
なるべく噛み砕いて書いたつもりなのでどなたかのお役に立てれば幸いです。

間違っている箇所がありましたら教えてくださいませ〜〜:pray:

参考

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1