1. 問題
npm packageをインストールすると、package.jsonのdependenciesにそのpackage名とバージョン番号が追記される。
なんでそうなるんだろう。packageとdependencyって同じものなのかな?
2. 環境
npm packageを使用する環境すべて。
3. 解決
npm packageをインストールするとアプリケーションのdependencyになるとみていい。
4. 詳細
4.1 用語の定義
packageやdependency以外にも、混乱しやすい用語も一緒にまとめておく。
-
module
合理的な機能を持つ単一のJavaScript fileのこと。
Node.jsのrequire()functionによってloadすることができるfileまたはdirectoryのこと。node_modulesdirectoryの中にある。 -
package
package.jsonによって記述されるfileもしくはdirectoryのこと。
一つ以上のmoduleを持ち、packageに関するmata dataを含むpackage.jsonfileを持つdirectoryのこと。 -
library
codeのまとまりを説明する一般用語。
単一moduleや複数のpackageで構成。 -
dependency
module、package、libraryなど、アプリの実行に必要なもの。
npmはpackage.jsonでProjectの情報やpackageのdependencyを管理する。
4.2 もっと分かりやすく理解するには
それぞれの用語が互いにどのように関連しているかを考えてみるともっと分かりやすくなる。
-
npm packageをインストールすると、dependencyとしてインストールされる。
(Once you install anypackageusing npm then the package is installed as adependencyin your app inside your package.json file along with itsmodules(akalibrariesconsist of classes) stored inside node_modules folder.) -
npm registryは
packageを含む。その多くはNodemoduleであるか、Node moduleを含むものである。
5. 関連知識
なし
6. まとめ
packageをインストールするとアプリのdependencyになる。つまり二つはそれぞれ別の概念。
packageは一つ以上のmoduleを持ち、package.jsonを持つという特徴がある。
libraryはcodeのまとまりを一般的に言う用語。
7. 参考
Module vs. Dependency vs. Library vs. Package vs. Component
About packages and modules
【npm】パッケージとモジュールの違いって何?
What Is the Difference Between a Module, a Package, a Library, and a Dependency?
npm(node package manager) 完璧まとめ
8. 感じたこと
packageとdependencyは全然違う概念だった。