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 |
|---|---|
dependencies | Cần lúc runtime |
devDependencies | Test, lint, build, type |
peerDependencies | Yêu cầu host project cung cấp (plugin/library) |
optionalDependencies | Cài lỗi cũng không fail |
Semver MAJOR.MINOR.PATCH:
| Range | Chấ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.