npm là trình quản lý gói mặc định cho Node.js. Facebook từ lâu đã phát triển một giải pháp quản lý gói thay thế có tên Yarn . Yarn dường như đang dần biến mất khỏi GitHub readmes như một giải pháp mặc định và số liệu thống kê trên trang web chính thức cho thấy rằng chỉ một phần cài đặt gói được thực hiện với Yarn. Tuy nhiên, nó đáng để nhìn ra bên ngoài hộp.
Yarn hoàn toàn tương thích với các tệp package.json hiện có, vì vậy bạn có thể dễ dàng sử dụng cả hai giải pháp trong các dự án hiện tại. Các lệnh cho hai giải pháp chỉ khác nhau một chút. Dưới đây là bảng so sánh các lệnh quan trọng nhất.:
| Sự miêu tả | npm | Sợi |
| Khởi tạo | npm init | sợi init |
| Cập nhật | npm cài đặt -g npm | tự cập nhật sợi |
| Cài đặt gói | cài đặt npm - lưu [tên] | sợi thêm [tên] |
| Cài đặt gói | cài đặt npm --save-dev [tên] | sợi thêm --dev [tên] |
| Cài đặt gói trên toàn cầu | npm install -g [name] | sợi toàn cầu thêm [tên] |
| Cài đặt tất cả các gói | cài đặt npm | cài đặt sợi |
| Cập nhật tất cả các gói | cập nhật npm | nâng cấp sợi |
| Gỡ cài đặt gói | npm xóa [tên] | loại bỏ sợi [tên] |
Yarn bắt đầu với mục tiêu giải quyết một số điểm yếu của npm. Sự khác biệt rõ ràng nhất là hiệu suất cao hơn: thông qua cài đặt tăng dần, đa luồng và tính năng sát thủ mới nhất Plug'n'Play (PNP), hiệu suất tăng lên đáng kể. Plug'n'Play bác bỏ ý tưởng về thư mục node_modules dựa trên dự án, thư mục này thường có thể phát triển đến mức cao ngất ngưởng về số lượng tệp. Bạn có thể tìm hiểu thêm về điều này trong sách trắng Plug'n'Play chính thức . Chúng tôi cài đặt eslint một lần với npm và sau đó với sợi với bộ đệm được làm nóng trong từng trường hợp để tạo ra sự khác biệt rõ ràng về tốc độ (6x!):

