package.jsonの中身の例
{ "name": "my-package", "description": "my first package ever", "license": "MIT", "version": "1.0.0", "bin": "./cli.js", "main": "index.js", "scripts": { "start": "node index.js" }, "dependencies": { "axios": "^0.18.0" }, "devDependencies": { "eslint": "^5.14.1" } }
dependencies
本番環境で必要なパッケージが列挙されている
devDependencies
開発、テスト、デバッグ中にのみ必要なパッケージが列挙されている
例えば、Linter は開発中は必要ですが、本番は不要なので、devDependenciesに含める
バージョン指定の見方
前提として
例)4.17.1
と書かれていたら、
- 一番右:メジャーバージョンは「4」
- 真ん中:マイナーバージョンは「17」
- 一番左:パッチバージョンは「1」
になります。
これを踏まえて
^(キャレット)
例)^4.17.1
→ メジャーバージョンは「4」と一致しかつマイナーバージョンは「17」以上
- 4.18.x → OK
- 4.20.x → OK
- 5.0.0 → NG
- 4.16.1→ NG
~(チルダ)
例)~4.17.1
→ メジャーバージョンは「4」かつマイナーバージョンは「17」と一致しかつパッチバージョンは「1」以上
- 4.17.2 → OK
- 4.17.5 → OK
- 4.18.x → NG
- 5.0.0 → NG
- 4.16.x → NG
^(キャレット)、~(チルダ)なし
例)4.17.1
4.17.1 のみOK
scripts
コマンドのエイリアス
任意のコマンドに名前をつけることができる
main
なんかのパッケージをインポートするときのエントリポイント(?)が記載されている
bin
本パッケージを実行するときのCLIコマンドが記載されている
参考: