Bài viết được dịch từ:sitepoint.comYarn là một phép tắc làm chủ package JavaScript, được tạo vì chưng Facebook, Google, Exponent và Tilde. Mục đích của chính nó là giải quyết và xử lý các vụ việc, màcác teamsinh hoạt nhữngchủ thể bên trên vẫn chạm mặt cần Lúc sử dụng npm, kia là:Việc setup những package không được nkhô cứng cùng đồng nhất.Các lúng túng về bảo mật, như việc npm có thể chấp nhận được các package chạy code vào quy trình thiết lập.Nhưng, yarn không cố gắng nhằm sửa chữa thay thế trả vắt hoàn toàn npm. Nóchỉ là 1 trong cách thức để mua đặtcác modulesđăng ký trênnpm. Không bao gồm thay đổi gì về phong thái ĐK - bạn vẫn hoàn toàn có thể tải đặtcùng xuất bản các package như bình thường.Vậy số đông ngườitất cả buộc phải áp dụng yarn? cũng có thể bạn sẽ không bao giờ gặp gỡ phảicác sự việc với npm. Vì vậy, nội dung bài viết này đang so sánh npm cùng Yarn, nhằm bạn có thể quyết định mẫu làm sao cân xứng cùng với bản thân độc nhất vô nhị.

Bạn đang xem: Nghĩa của từ yarn

Yarn vs npm: Sự khác biệt về chức năng

Nhìn loáng qua Yarn với npm tương đối như thể nhau. Nhưng khi xem xét kỹ rộng họ vẫn nhận biết cái tạo nên Yarn khác hoàn toàn.

yarn.loông chồng file

package.json là tệp tin màcả npm cùng Yarn thực hiện nhằm theo dõi và quan sát và quản lí lýnhững dependencies của dự án, version của các dependencykhông hẳn thời gian nào cũng là một vài đúng đắn. Thay vào đó, chúng ta có thể định nghĩa một khoảng tầm những version. Với cách này, bạn cũng có thể chỉ định và hướng dẫn một phiên bạn dạng bao gồm cùng phụcho 1 package, cơ mà vẫn chất nhận được npm cài đặt bạn dạng vá tiên tiến nhất rất có thể fix một vài ba bug.Trong điều kiện lý tưởng nhưsemantic versioning, bạn dạng vá lỗi sẽ không còn bao gồm bất kỳ thay đổi làm sao. Nhưng điều đó chưa hẳn thời gian nào thì cũng đúng. Cùng một tệp tin package.json tuy thế bên trên hai vật dụng khác biệt, có thể setup các phiên phiên bản khác nhau của cùng một package, điều đó rất có thể mang đến những bug.Để tránh triệu chứng trên, một phiên bản đúng đắn được tùy chỉnh thiết lập tronglochồng tệp tin. Bất cứbao giờ một module được setup, Yarn sẽ tạo nên (hoặc cập nhật) một yarn.lock tệp tin. Cách này bảo đảm những thiết bị khác nhau thiết lập đúng mực một package, trong khi vẫn có một khoảng chừng những phiên bản đã có cho phép được định nghĩa vào package.json.Trong npm, lệnh npm shrinkwrapsẽ tạo ra một lochồng tệp tin, và npm install vẫn hiểu file này trước lúc hiểu package.json, tựa như giải pháp Yarn hiểu yarn.lock trước tiên. Điểm khác biệt quan trọng đặc biệt ngơi nghỉ đây là Yarn luôn luôn luôn luôn tạo ra với update yarn.lock, trong khi npm ko chế tác loông xã tệp tin vày khoác định và chỉ còn update npm-shrinkwrap.json Khi nó trường thọ.yarn.lock documentationnpm shrinkwrap documentation

Cài đặt tuy vậy song

Bất cứ khi nào npm hoặc Yarn thiết đặt một package, nó tiến hành một chuỗi những task. Trong npm, các task được triển khai trên mỗi package cùng tuần tự, Tức là nó đã hóng một package được thiết đặt hoàn tất rồi mới gửi cho tới chiếc tiếp theo sau. Yarn thực hiện các task tuy vậy song, vấn đề này tăng hiệu suất.Để so sánh, tôi sẽ thiết đặt express pakage thực hiện cả npm cùng Yarn không có shrinkwrap/loông chồng file cùng đang clean cabít. Với tổng cộng 42 package được thiết lập.nmp: 9 giâyYarn: 1.37 giâyTôi cần yếu tin vào mắt bản thân. Lặp lại công việc bên trên cũng đem lại kết quả tương tự như. Sau đó tôi cài đặt gulp package, cùng với 195 dependencies.npm: 11 giâyYarn: 7.81 giâyDường như sự khác biệt nhờ vào vào con số package được thiết lập. Dù cụ nào đi nữa, Yarn vẫn nkhô nóng rộng.

Kết quả cụ thể hơn

Bởi mặc định npm hết sức lướt thướt. Ví dụ, nó liệt kê tất cả các packages và các dependencies đang sở hữu đặtLúc chạy npm install .Yarn là 1 trong những ngôi trường phù hợp không giống, nó không liệt kê tất cả. Khi lên tiếng rất có thể nhận được trải qua các lệnh khác, nó đã liệt kê ít báo cáo rộng cùng với những emojis tương xứng (trừ khi bạn sẽ áp dụng Windows).

Yarn vs npm: Khác biệt về lệnh

Ngoài sự biệt lập chức năng, Yarn cũng có thể có sự khác hoàn toàn về lệnh. Một vài lệnh npm bị nockout bỏ, một số không giống được chỉnh sửa và một vài lệnh mới được cung ứng.

Xem thêm: Nhịp Và Phách Là Gì - Từ Điển Tiếng Việt Phách

yarn global

Không như là npm, những setup global được triển khai với cờ -g hoặc --global,những lệnh Yarn buộc phải ban đầu với global.Tiền tốglobalchỉ làm việc với yarn add, yarn bin, yarn ls với yarn remove. Ngoại trừ yarn add, các lệnh còn lại rất nhiều tương tương với npm.yarn global documentation

yarn install

Lệnh npm install sẽ thiết đặt các dependency từ file package.json và được cho phép chúng ta thêm những package bắt đầu. Còn yarn install chỉ setup các dependency vào yarn.lock hoặc package.json theo vật dụng từ bỏ đó.yarn install documentationnpm install documentation

yarn add<-dev>

Giống nhỏng npm install , yarn add được cho phép các bạn thêm và setup một dependency. Nó tự động hóa lưu giữ một tmê say chiếu tới package vào tệp tin package.json, giống như cờ --save của npm. Còn nếu như thêm cờ --dev, thì sẽthêm package nlỗi một developer dependency, giống hệt như cờ --save-dev của npm.yarn add documentationnpm install documentation

yarn licenses

Tại thời khắc viết bài xích, không tồn tại lệnh npm như thế nào tương đương. yarn licenses lsliệt kê toàn bộ các package theo thiết bị từ bỏ alphabeticalvà licence của chúng. Cònyarn licenses generate-disclaimer đã trả lại danh sách những licenses đã có được sắp xếp từ tất cả các package.yarn licenses documentation

yarn why

Lệnh này sẽ tìm thấy nguyên do vì sao một package được cài đặt trong dự án. quý khách hàng đang thêm nó, tuyệt nólà 1 dependency của một package được bạn tải setup.yarn why documentation

yarn nâng cấp

Lệnh này sẽ update các package tới phiên bạn dạng mới nhất được cấu hình thiết lập trong tệp tin package.json và tạo ra lại yarn.lock file. Tương từ bỏ npm update.Điều độc đáo là lúc chỉ định một package rõ ràng, nó đang cập nhật package cho tới phiên bản mới nhất cùng cập nhậttrong cả package.json.yarn nâng cấp documentation

yarn generate-lock-entry

Lệnh yarn generate-lock-entry tạo ra một yarn.lock file dựa vào những dependency thiết lập trong tệp tin package.json.Tương từ bỏ với npm shrinkwrap.Lệnh này lên được áp dụng không nguy hiểm, bởi nó tạo nên lock tệp tin với sẽ tự động hóa update file này lúc thêm hoặc update thông qua yarn add cùng yarn upgrade.yarn generate-lock-entry documentationnpm shrinkwrap documentation

Tính bất biến cùng tin cậy

Yarn nhấn được không ít issue report trong ngày đầu tiên sản xuất, tuy vậy tỉ lệ thành phần những issue được xử lý cũng khá đáng ngạc nhiên. Cả hai vấn đề này cho biết thêm, xã hội thao tác làm việc rất tích cựcđể tra cứu với sa thải những bug. Nhìn vào con số và giao diện issue, có thể coi Yarn đang bình ổn đến phần lớn người tiêu dùng, tuy nhiên vẫn chưa cân xứng cho 1 vài ngôi trường vừa lòng quan trọng đặc biệt.Chú ý rằng, tuy nhiên một giải pháp làm chủ packagehay là nhân tố quan trọng đặc biệt vào dự án công trình, nhưng lại nó chỉ là 1 trong những pháp luật. Nếu có điều gì đó sai, thì câu hỏi cài đặt lại các package chưa hẳn là quá khó khăn.

Tương lai

Có lẽ chúng ta đã biết câu chuyệngiữa Node.js và io.js. Nhắc lại một chút: io.js là 1 nhánh của Node.js, được tạo ra vì một vài ba contributor thiết yếu của Node.js sau hầu như sự không tương đồng về quản lý dự án. io.js lựa chọn quản lí trị dự án theo phía msinh sống. Chưa đầy 1 năm sau cả hai team đã đi đến một thỏa thuận, io.js sẽ được merge trở lại vào Node.js. Vấn đề này đang bổ sung cập nhật đến Node.js những kỹ năng tuyệt vời và hoàn hảo nhất.Tôi đang bắt gặp điều tương tự như cùng với npm và Yarn. Mặc cho dù Yarn chưa phải là 1 trong những nhánh của npm, dẫu vậy nó nâng cao nhiều hạn chếcủa npm. Thật tốt ví như npm học hỏi và chia sẻ từ Yarn với những hiểu biết Facebook, Google và phần đông contributor không giống của Yarn góp nâng cấp nó. Mặc mặc dù còn vượt mau chóng nhằm nói điều này đang xẩy ra, nhưngtôi hi vọng nó sẽ xẩy ra.

Kết luận

Yarn tất cả một số trong những điểm xuất sắc hơn Lúc đối chiếu với npm. Chúng ta bao gồm một loông xã file mang định, câu hỏi setup những package cũng nkhô cứng hơn cùng chúng tự động lưu trữ vào package.json. quý khách hàng có thể thể nghiệm Yarn bên trên một dự án công trình, và xem nó nó tương xứng với chúng ta hay là không.
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *