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_modules
directoryの中にある。 -
package
package.jsonによって記述されるfileもしくはdirectoryのこと。
一つ以上のmodule
を持ち、packageに関するmata dataを含むpackage.json
fileを持つdirectoryのこと。 -
library
codeのまとまりを説明する一般用語。
単一moduleや複数のpackageで構成。 -
dependency
module、package、libraryなど、アプリの実行に必要なもの。
npmはpackage.json
でProjectの情報やpackageのdependencyを管理する。
4.2 もっと分かりやすく理解するには
それぞれの用語が互いにどのように関連しているかを考えてみるともっと分かりやすくなる。
-
npm packageをインストールすると、dependencyとしてインストールされる。
(Once you install anypackage
using npm then the package is installed as adependency
in your app inside your package.json file along with itsmodules
(akalibraries
consist 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は全然違う概念だった。