</>
⌕
Junior #npm#package-json#semver#lockfile

package.json: dependencies, devDependencies, semver và lockfile

⚡ Trả lời nhanh

dependencies cần khi chạy production, devDependencies chỉ khi dev/build/test. Semver MAJOR.MINOR.PATCH: ^ cho phép nâng minor/patch, ~ chỉ patch. Lockfile ghi version chính xác đã cài để build lặp lại được; nên commit và dùng npm ci trên CI.

TrườngÝ nghĩa
dependenciesCần lúc runtime
devDependenciesTest, lint, build, type
peerDependenciesYêu cầu host project cung cấp (plugin/library)
optionalDependenciesCài lỗi cũng không fail

Semver MAJOR.MINOR.PATCH:

RangeChấp nhận
^1.2.3>=1.2.3 <2.0.0
~1.2.3>=1.2.3 <1.3.0
1.2.3đúng phiên bản đó
^0.2.3>=0.2.3 <0.3.0 (0.x coi minor như breaking)

Lockfile (package-lock.json, yarn.lock, pnpm-lock.yaml) khoá cả cây dependency gồm transitive deps cùng hash toàn vẹn.

🃏 Ôn bằng flashcard