티스토리 뷰

ETC

[JP] NPMとは?!

johnny Hong 2022. 8. 8. 22:52

皆さん!こんばんは今回は皆さんがNode.jsの勉強をやる時に

必要な概念のNPMについて記録します。

 


まず、NPMとはなんでしょ?

NPM(Node Package Manager)

Node.jsのためのオープンソース生態系で

世界最大のSoftware Registry Package Managerである。

 

理解しやすく説明するとPackageをダウンロードできる

AppStoreみたいな感じですね。


NPMはNode.jsで使用するModuleをPackageとして作って

管理や配布をしています。

公式サイト

https://www.npmjs.com/

 

npm

Bring the best of open source to you, your team, and your company Relied upon by more than 11 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java

www.npmjs.com

NPMレジストリには数多くのPackageが含まれており、そのPackageは依存性(dependenciesバージョンを通じて

追跡出来るように構成されてます。

 

ExpressやReactなど私たちが知ってるライブラリーやFrameworkなども含められてます。

 

Ex

 

さぁ!もし理解ができなかった方はコメントやTwitterお願いします!

 

 

次に行きましょう!

主によく使われてるNPMのCLI(Command Line Interface)に関する基本的なNPM INITをやってみましょう!

 


Projectの生成&初期化

 npm init  です、このCommandを利用すると現在のDirectoryにNPM基盤のProjectを作れます!

Commandを実行すると!

こういうふうに基本設定をします。

ですが、もしこの質問がもう面倒くさいと思う方はnpm init --force ( or  -f )npm init --yes ( or  -y )どっちか一つのプラグを入れるのをお勧めします。

 


Package.json

git initを通じて私たちはPackage.jsonを作りました。

まず、このPackage.jsonっていうのは何ものかを説明します。

 

Package.jsonは文書です!何の文書か?

 

開発者が配布したPackageについて、他人が管理や

インストールしやすくする為の文書です。

 

 

つまり

 

オープンソースPackageを使用するための明細書です!

Projectの依存性管理やPackage生態系への配布時のために

下記のような内容を含めてる明細書です!

  • 自分のProjectで使われてる(依存してる)Packageのリスト
  • Projectのバージョン

これを通じて、他の環境でも使いやすくさせることができる!


難しいっていうか複雑ですよね、でも一言でいうと私たちの情報みたいに

私たちが作ったPackageの情報を保管し、使用するって思えばいいと思います!

 

今回は構成要素についてお話しましょう!

必修Fields

まず、必修的に使われる要素からみてみましょう!


name

単語通りPackageの名前を表します!Nameを付ける際にはルールがあります。

  • 必ず小文字
  • 一つの単語で作成するべき。
  • -(hyphen)や_(underscore)は含められます。

Version

下記の公式サイトに出てる形式に合わせて作成せざるを得ません。

主に[Major].[Minor].[Patch]形

 

https://docs.npmjs.com/about-semantic-versioning

 

About semantic versioning | npm Docs

Documentation for the npm registry, website, and command-line interface

docs.npmjs.com

SemanticVersioningについては!また勉強後、いつか投稿することにします。

会社や団体によって少しずつ異なりますが、だいたい同じ形を持ってます

 


Description

Packageの内容が記述されてる要素です。

自分で作ったのだったら自分で作成出来ます。

Packageの理解をよりしやすくする為の要素です。


Main

NPM INITする時EntryPointの設定をしました。

PackageのModuleを読み込む時、相対経路で設定されてるFileのExportsが返されます。

(相対経路で定められてない場合はルートのindex.jsが基本になります。)


Script

PackageのLife-Cycleで色んなタイミングで使うCommandをAliasを通じて別称を定めておく

Dictionaryです。

例えば!

{
  "scripts": {
  	"create-file": touch NewPackage.js
  }
}

npm create-fileと命令したら

NewPackage.jsが生成されます。


Keywords

Descriptionと同じくNPMで検索した時リストに表示されて

他人が探しやすく理解するに役立てる要素です。


Author

配布者を表記する要素!

多数の配布者だったら

“contributors”で作成しなければならない


License

配布したPackageについて使用者が使用するにあたって

どんな権限と制限を持つのかを表記する要素です。


ここまで要素の長い話は終わりました。

依存性によるPackage一括管理が一番重要なので他のNPM関連ポストを読みながら

参考してください!

 

ありがとうございます!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함