package.json備忘録
code:package.json
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"engines": {
"node": "16.x"
},
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
},
"dependencies": {
"next": "^10.0.0",
"react": "17.0.1",
"react-dom": "17.0.1",
},
"devDependencies": {
"@types/node": "^14.14.31",
"@types/react": "^17.0.2",
"typescript": "~4.2.2"
}
}
■ バージョン表記について
バージョンの記載はセマンティックバージョニング
メジャー.マイナー.パッチの順番
チルダ表記 ~
明記されてるバージョン以下の更新を許容
パッチまで記載 = 記載されているパッチ以上のパッチが更新許容: ~1.1.2 = 1.1.2 <= version < 1.2.0
マイナーまで記載 = パッチが更新許容: ~1.1 = 1.1.x
メジャーのみ記載 = マイナー更新許容: ~1 = 1.x
キャレット表記 ^
一番左側にある、ゼロでないバージョニングは変えない
一番左のゼロでないバージョンがパッチ= 更新不可: ^0.0.3 := 0.0.3 <= version < 0.0.4
一番左のゼロでないバージョンがマイナー = パッチが更新可能: ^0.2.3 := 0.2.3 <= version < 0.3.0
一番左のゼロでないバージョンがメジャー = マイナー、パッチが更新可能: ^1.2.3 := 1.2.3 <= version < 2.0.0
■ dependencies
商用プロジェクトのランタイムに必要なパッケージ
React、express等のフレームワーク
■ devDependencies
開発(development)中のみプロジェクトに必要で、デプロイ後は必要ない場合の依存関係
typescriptは.ts -> .jsのビルド時だけ必要なものなので、普通はdevDependencies
linterやtest系も同様
■ engines
特定のバージョンのNode.jsでしか動かしてほしくないパッケージがある場合、package.jsonのenginesフィールドに、Node.jsのバージョンを明記しておくと、yarn installやnpm installしたときに警告を表示できるようになる
■ peerDependencies
特定のライブラリから参照されることが想定されていて、どのバージョンに互換性があるか