「npm init -y」コマンドを打ってpackage.jsonファイルを生成すると次のようになる。
C:\Projects7\sample>npm init -y
Wrote to C:\Projects7\sample\package.json:
{
"name": "sample",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
C:\Projects7\sample>
package.jsonファイルの必須項目はnameとversionである。
「name」は「プロジェクト名(=パッケージ名)」(必須)
「version」は「バージョン」(必須)
この2つだけが必須プロパティである。
2種類のプロジェクト名定義
単純なプロジェクト名(スコープなし)
“name”:”パッケージ名”
スコープ付きプロジェクト名
“name”:”@<ユーザ名>/パッケージ名”
プロジェクト名は文字数214文字以内(スコープ文字を含む)
使える文字種(もじしゅ)
アルファベット小文字(a-z)
数字(0-9)
-(ハイフン)
.(ドット)
_(アンダースコア)
~(チルダ)
※URLになって問題にならない文字が使える。アルファベットの大文字が使えない点に注意すること。
.(ドット)と_(アンダースコア)は先頭では使えない文字である点に注意すること。
バージョン番号には「セマンティックバージョンニング」を利用する。

「license」には「SPDXライセンスID」を指定する。
SPDX License List | Software Package Data Exchange (SPDX)
「SPDXライセンスID」には例えば、MITなどがある。

node.jsは自分の作ったプロジェクトを世界に公開することが可能である。このためプロジェクトにはlicenseプロパティというものが存在している。
ライセンスとは、プロジェクトを配布した際などに利用者にプロジェクトの法的な扱いを指定する。
ここで疑問なのは、企業などで開発を行った配布を許可しないプロジェクトの場合はlicenseプロパティに何を書くか?ネットで検索していたら次のようにUNLICENSEDとするみたい。
※UNLICENSEDにしただけではプロジェクトが公開にならないはず。privateプロパティをtrueにする必要があるはず。プロジェクトの公開したことないから、また今度試してみるかな。
{
"name": "sample",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "UNLICENSED",
}
「description」は「プロジェクトに関する説明」
「main」は「エントリーポイントへのパス」
「author」は「プロジェクトの作者」
エントリーポイント(entry point)はIT用語辞典に「エントリポイントとは、コンピュータプログラムを実行する際に、一番最初に実行することになっている箇所のこと。」と載っていた。
一番最初に実行するコードをエントリーポイントと言うみたいだな。

「private」はプロジェクトが公開か非公開かを決める。
「npm init -y」で生成したpackage.jsonファイルには「private」が入っていないから追記する。
このプロパティがtrueになっていると、プロジェクトの公開ができない。公開しないプロジェクトは誤って公開しないようにtrueにしておく。

参考
Node.js 入門 ー演習しながら学ぶ基本クラスの使い方ー | Udemy ExternalLink
npm/yarnを実行したときに’No license field’が出た時の対処法 – 株式会社シーポイントラボ | 浜松のシステム・RTK-GNSS開発 (cpoint-lab.co.jp) ExternalLink
package.jsonの中身を理解する – Qiita ExternalLink