Các nguồn đều nhấn mạnh rằng quản lý dependency trong dự án Node không chỉ là cài gói bằng npm, mà là kiểm soát chính xác phiên bản thực tế chạy ở môi trường production. package.json khai “dải phiên bản” theo SemVer bằng ký hiệu như ^ và ~: ^ cho phép nâng minor và patch trong cùng major, còn ~ chỉ cho phép nâng patch trong cùng minor; nếu không có lockfile, npm có thể resolve sang phiên bản cao hơn trong dải này ở lần cài sau. Vì vậy, lockfile (package-lock.json/yarn.lock/pnpm-lock.yaml) cần được commit và CI/production nên dùng npm ci để cài đúng theo lockfile, đảm bảo build tái lập và không xảy ra “chạy được trên máy tôi” do lệch cây phụ thuộc.

Ngoài việc cố định phiên bản, các nguồn cũng coi trọng phân loại dependency: dependencies phục vụ runtime, devDependencies chỉ dùng cho dev/test và không vào production, còn peerDependencies là yêu cầu host cung cấp để tránh xung đột nhiều bản (ví dụ React).

Các rủi ro được đề cập gồm supply-chain attack (bản phát hành mới bị chèn mã độc hoặc bị xâm phạm maintainer) và breaking change lọt qua minor/patch dù người dùng chỉ “nâng cấp nhẹ”. Phòng vệ gồm lockfile + npm ci, dùng npm audit, ghim có chọn lọc các dependency nhạy cảm, cập nhật có kiểm soát, theo dõi kích thước/graph dependency và xem changelog khi nâng major.