npm là trình quản lý gói được tích hợp vào bộ cài Node.js đã từ rất lâu. Hầu hết chúng ta đều sử dụng npm để tải về các gói có trên npm registry, hoặc mỗi khi cần cài đặt lại toàn bộ các gói phụ thuộc sử dụng trong dự án. npm có những cơ chế bảo mật cao như quyền truy cập vào các gói riêng tư (private), cơ chế xác thực và xác minh hai lớp...
Tiện lợi là thế nhưng npm cũng có một số hạn chế như tốc độ cài đặt gói chậm, tạo ra node_modules có dung lượng tương đương với hố đen vũ trụ... kèm theo một bộ cấu hình phức tạp. Chính vì thế nhiều trình quản lý gói khác ra đời nhằm khắc phục những điểm yếu đó, đơn cử như Yarn hoặc pnpm.
Trong khi yarn nổi tiếng với tốc độ cài đặt gói thì pnpm lại có cơ chế làm giảm dung lượng của node_modules thông qua việc chia sẻ thư mục. Giờ đây chúng ta không nhất thiết phải sử dụng npm theo mặc định nữa, mà có thể lựa chọn các trình quản lý khác theo sở thích hoặc nhu cầu của dự án.
Một tin vui nữa là kể từ Node.js 14, chúng ta không cần phải cài đặt yarn hoặc pnpm một cách thủ công nữa mà nó đã được tích hợp sẵn vào trong Node.js với cờ thử nghiệm (Stability: 1) với tên gọi Corepack. Có thể sẽ mất thêm một thời gian nữa thì Corepack mới được gán cờ ổn định, nhưng ngay bây giờ hãy cùng tôi tìm hiểu xem Corepack là gì và sử dụng nó như thế nào nhé.
Corepack hiện đang là một công cụ thử nghiệm giúp quản lý các trình quản lý gói. Nó đóng vai trò như là một proxy. Khi được gọi, nó sẽ xác định xem trình quản lý gói nào được định cấu hình cho dự án hiện tại, cài đặt nếu chưa có và cuối cùng chạy nó. Tất cả những gì người dùng thấy là kết quả như đang tương tác với trình quản lý gói trực tiếp.
Cốt lõi của Corepack là:
Do đang là thử nghiệm, Corepack cần được kích hoạt thông qua lệnh corepack enable
, chỉ cần nhập vào terminal:
$ corepack enable
Ngay lập tức Corepack sẽ được kích hoạt, bạn có thể kiểm tra version của yarn hay pnpm ngay lúc này:
$ yarn --version
1.22.19
$ pnpm --version
8.5.1
Hiện tại, Corepack chỉ hỗ trợ hai trình quản lý gói là yarn và pnpm. Nếu không muốn sử dụng nữa, chỉ cần chạy lệnh corepack disable
.
$ corepack disable
Để xác định trình quản lý gói được sử dụng trong dự án, bạn có thể thiết lập nó thông qua thuộc tính "packageManager" có trong package.json
. Mở package.json
ra và kiểm tra xem có thuộc tính packageManager
chưa, nếu chưa thì hãy thêm vào:
{
...
"packageManager": "yarn",
...
}
Hành động này đồng nghĩa với việc bạn cấu hình yarn làm trình quản lý gói mặc định, nếu cố tình sử dụng pnpm trong dự án để cài đặt hoặc làm bất cứ điều gì đi nữa thì một thông báo lỗi sẽ bật ra màn hình yêu cầu phải sử dụng yarn.
Điều này ngoại lệ với npm, nghĩa là bạn vẫn có thể sử dụng lệnh npm trong khi "packageManager" đang được thiết lập là yarn hoặc pnpm.
npm là trình quản lý gói được tích hợp sẵn trong Node.js. Mặc dù là công cụ mạnh mẽ nhưng npm trong tránh khỏi những thiết sót. Lý do đó khiến Corepack ra đời mang theo hai trình quản lý gói là yarn và pnpm. Giờ đây không cần phải cài đặt thủ công trình quản lý gói yêu thích nữa mà có thể sử dụng nó ngay trong Node.js.
Tham khảo:
Xin chào, tôi tên là Hoài - một anh Dev kể chuyện bằng cách viết ✍️ và làm sản phẩm 🚀. Với nhiều năm kinh nghiệm lập trình, tôi đã đóng góp một phần công sức cho nhiều sản phẩm mang lại giá trị cho người dùng tại nơi đang làm việc, cũng như cho chính bản thân. Sở thích của tôi là đọc, viết, nghiên cứu... Tôi tạo ra trang Blog này với sứ mệnh mang đến những bài viết chất lượng cho độc giả của 2coffee.dev.Hãy theo dõi tôi qua các kênh LinkedIn, Facebook, Instagram, Telegram.
Bình luận (0)