2017-07-04 13 views
20

Tôi vô tình chạy npm install trong một dự án sử dụng Sợi và nhận thấy rằng npm đã tạo tệp package-lock.json.Sự khác biệt giữa khóa gói của khóa sợi và khóa của npm là gì?

Tôi biết rằng Sợi đã tăng phổ biến một phần vì nó đã sử dụng một tệp khóa để tạo ra các cài đặt phụ thuộc đáng tin cậy và xác định hơn npm, trong một thời gian chỉ bị tê liệt shrinkwrap feature, nhưng bây giờ tôi không chắc chắn này npm lockfile kinh doanh và cho dù có bất cứ điều gì hấp dẫn về việc tiếp tục sử dụng Yarn.

Vì vậy, theo tinh thần của một previous Q and A on StackOverflow on yarn vs shrinkwrap, tôi hỏi như sau:

  • Có bất kỳ sự khác biệt đáng kể giữa hai nhà quản lý gói về độ tin cậy nữa?
  • Nếu không, có lý do thuyết phục nào để tiếp tục sử dụng Sợi bên cạnh "Biểu tượng cảm xúc khác" không?
+2

https://yarnpkg.com/blog/2017/05/31/determinism/ có thể hữu ích. Có vẻ như npm 5 gần như đạt được tính chẵn lẻ với sợi về khía cạnh này. –

Trả lời

10

Trên giấy, Sợi và NPM 5 trông gần như tương đương. Cả hai đều có các tập tin khóa xác định và gần như phù hợp với nhau trong chức năng. Một số người sẽ nói rằng Sợi là chất xúc tác để giúp NPM đổi mới.

Tuy nhiên, sau khi trải qua NPM 5 trong một tháng, nhóm của tôi đã quyết định chuyển sang Sợi.

NPM về mặt kỹ thuật có tệp khóa "xác định hơn" trong đó có đảm bảo lý thuyết rằng trên các phiên bản NPM, NPM sẽ tạo chính xác thư mục node_modules. Mặt khác, việc đặt cẩu/đặt hàng phụ thuộc chính xác của Sợi phụ thuộc vào phiên bản Sợi và có thể thay đổi trên các phiên bản Sợi. Nói chung, điều này có rất ít tác động.

Tại sao nên sử dụng Sợi sau đó? Hợp nhất & độ tin cậy.

Sợi đưa ra quyết định giảm nhẹ để đạt được một đơn giản hơn nhiều yarn.lock tệp dễ dàng hợp nhất hơn. Nếu bạn là một nhà phát triển solo, điều này có thể sẽ không ảnh hưởng đến bạn, nhưng nếu bạn đang trong một nhóm với nhiều cộng tác viên cam kết thay đổi phụ thuộc, nó nhanh chóng trở thành một vấn đề lớn. Số package-lock của NPM thực tế không thể hợp nhất và bạn sẽ phải tạo lại hoặc đấu tranh. Mặt khác, với Sợi, việc sáp nhập dễ dàng và có thể dự đoán được.

Xem: https://yarnpkg.com/blog/2017/05/31/determinism/

Là một mặt lưu ý, chúng tôi cũng tìm thấy Sợi là đáng tin cậy hơn trên trung bình.

+0

Về việc hợp nhất, tôi không biết liệu tôi có đồng ý về việc "dễ dàng" làm như vậy với yarn.lock hay không. Tôi đã gặp vấn đề này vài tuần trước, và tìm thấy cuộc trò chuyện này, trong đó căn bản nói, bạn _should_ tái tạo, nhưng làm như vậy theo một cách cụ thể. https://github.com/yarnpkg/yarn/issues/1776#issuecomment-269539948 – jktravis

Các vấn đề liên quan