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

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

Tin ngắn hàng ngày dành cho bạn
  • openai/codex là một dự án mã nguồn mở mới nhất của OpenAI, ngay sau khi họ công bố hai mô hình mới nhất là o3 và o4 mini. Nghe nói cả o3 và o4 mini này rất thích hợp làm Agent nên tung ra codex như một dạng Agent nhỏ nhẹ chạy ngay trong Terminal luôn.

    Về tính ứng dụng, vì nó là Agent nên nó có thể đọc/thêm/sửa/xoá nội dung tệp của bạn luôn. Ví dụ.

    codex "explain this codebase to me"

    Hoặc tích hợp vào pipe line của CI/CD.

    - name: Update changelog via Codex run: | npm install -g @openai/codex export OPENAI_API_KEY="${{ secrets.OPENAI_KEY }}" codex -a auto-edit --quiet "update CHANGELOG for next release"

     À quên mất, phải dùng API của OpenAI nha 😆

    » Xem thêm
  • Có thể nhiều người chưa biết, OpenAI đã mở trang học viện riêng để giúp người dùng học tập và khai thác được tối đa sức mạnh các mô hình ngôn ngữ của họ.

    OpenAI Academy

    » Xem thêm
  • Mới sáng ra đã có tin giật gân: OpenAI muốn mua lại Windsurf với giá 3 tỉ đô 😳

    » Xem thêm

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

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

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.

Tham khảo:

Cao cấp
Hello

Bí mật ngăn xếp của Blog

Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, hãy bấm vào ngay!

Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, hãy bấm vào ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (0)

Nội dung bình luận...