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 các readmes Github như một giải pháp tiêu chuẩn và số liệu thống kê trên trang web chính thức cho thấy chỉ một phần nhỏ các gói được thực hiện bởi Yarn. Tuy nhiên, nó là giá trị suy nghĩ 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ể sử dụng cả hai giải pháp cho các dự án hiện có mà không gặp bất kỳ sự cố nào. Lệnh của hai giải pháp chỉ khác nhau một chút. Dưới đây là 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 đích 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 gia tăng, đ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 đáng kể. Plug'n'Play loại bỏ ý tưởng về một thư mục node_modules dựa trên dự án, số lượng tệp thường có thể tăng lên đến độ cao thiên văn . Thông tin thêm có thể được tìm thấy trong báo cáo chính thức của plug'n'play. Chúng tôi cài đặt eslint một lần với npm và sau đó với sợi với bộ nhớ cache được làm ấm trong mỗi trường hợp để tạo ra sự khác biệt về tốc độ (6x!):