Corepack là gì và tác dụng của nó trong Node.js

639

Bài viết được sự cho phép của tác giả Tống Xuân Hoài

Vấn đề

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é.

  Bàn về câu lệnh npm run build - tại sao cần phải build?

  6 câu lệnh NPM hữu ích – Web dev mà bỏ qua sẽ vô cùng tiếc

Corepack là gì?

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à:

  • Không cần thiết phải cài đặt thủ công trình quản lý gói từ những công cụ cài đặt bên ngoài nữa.
  • Đảm bảo rằng mọi người trong nhóm sẽ sử dụng chính xác phiên bản trình quản lý gói thông qua thiết lập trong “package.json”.

Tham khảo việc làm NodeJS tại Hồ Chí Minh lương cao, hấp dẫn!

Cách sử dụng

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.

Tổng kết

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.

Bài viết gốc được đăng tải tại 2coffee.dev

Xem thêm:

Xem thêm các việc làm công nghệ hấp dẫn trên TopDev