Yarn là gì? Vì sao Yarn có thể thay thế được npm

23/06/2022
Banner hosting giá rẻ dành cho sinh viên

Yarn – Công cụ quản lý những phần mềm trong một dự án đang được người sử dụng ưa chuộng phổ biến hiện nay, được đánh giá là đang dần thay thế npm. Vậy bạn đã hiểu rõ Yarn là gì và cách sử dụng Yarn hiệu quả chưa? Hãy cùng Vietnix tìm hiểu định nghĩa, cách cài đặt công cụ phần mềm Yarn và So sánh giữa Yarn với npmtrong bài viết dưới đây.

Yarn là gì? 

Yarncông cụ quản lý gói phần mềm (Package) JavaScript mã nguồn mở tốc độ cao, nó cho phép người dùng sử dụng và chia sẻ các gói phần mềm với lập trình viên trên toàn thế giới. 

Yarn được xây dựng và sử dụng bởi các kỹ sư tập đoàn Facebook, Google, Exponent và Tilde từ tháng 1/2016. Mục đích của họ khi tạo ra Yarn là để giải quyết các vấn đề thường gặp phải khi sử dụng NPM như hiệu suất cài đặt còn thấp, việc cài đặt mất quá nhiều thời gian, còn tồn tại các lỗi về bảo mật. 

Yarn là công cụ quản lý gói phần mềm (Package) JavaScript mã nguồn mở tốc độ cao
Yarn là công cụ quản lý gói phần mềm (Package) JavaScript mã nguồn mở tốc độ cao

Với những tính năng ưu việt, Yarn đã thể hiện tiềm năng phát triển mạnh mẽ của phần mềm với đánh giá hơn 10.000 stars chỉ trong 1 ngày tại Github.

Sau sự thành công đầu tiên, đội ngũ phát triển đã tiến hành nâng cấp phiên bản Yarn 2 vào tháng 1/2020. Tuy nhiên dự án Yarn 2 không nhận được sự hưởng ứng và ủng hộ của người dùng. Chính vì vậy, trong bài viết này Vietnix sẽ chỉ đề cập đến Yarn 1 và gọi tóm tắt là Yarn. 

Banner Hosting Cao Cấp dành cho SEOer

Các tính năng của Công cụ quản lý gói phần mềm Yarn

Ngoài việc cài đặt nhanh chóng, độ bảo mật đáng tin cậy, Yarn được trang bị các tính năng sau:

  • Offline mode: Sau khi tải Yarn về máy, bạn có thể sử dụng công cụ mà không cần internet, giúp quá trình làm việc thuận lợi hơn rất nhiều.
  • Deterministic: Các Package có thứ tự cài đặt khác nhau sẽ được quản lý nhất quán cho tất cả các máy.
  • Network Performance: Giúp bạn sử dụng hiệu quả các request và tránh waterfall các request nhằm tối ưu tốc độ mạng.
  • Multiple Registries: Tính năng này giúp người dùng cài đặt các gói registries như Bower hay NPM đều đảm bảo workflow giống nhau.
  • Network Resilience: Với tính năng này, tiến trình làm việc của Yarn vẫn sẽ tiếp tục kể cả khi một request gặp lỗi. Tính năng này khắc phục được hạn chế của npm là nếu gặp lỗi thì npm của bạn sẽ phải dừng lại.
  • Flat Mode: Thống nhất phiên bản các Package thành 1 gói để hạn chế tình trạng trùng lặp cho người sử dụng.

Bên cạnh đó, Yarn còn được bổ sung một số tính năng khác để đơn giản hóa quá trình vận hành và quản lý:

  • Yarn có thể tương thích với cả npm và bower, được trang bị hỗ trợ đăng ký trộn.
  • Hiển thị một API JS công khai ổn định với việc ghi nhật ký được tóm tắt để sử dụng thông qua các công cụ xây dựng.
  • Yarn sở hữu đầu ra CLI dễ đọc, đơn giản và đẹp mắt.
Yarn có tính năng Offline mode cực tiện lợi
Yarn có tính năng Offline mode cực tiện lợi

Cách cài đặt công cụ quản lý gói phần mềm Yarn

Yarn có thể được cài đặt đa dạng các hệ điều hành như: Windows, Linux, MacOS. Sau đây là cách cài đặt Yarn cho từng hệ điều hành:

1. Hệ điều hành Windows

Với Windows, bạn có thể lựa chọn cài đặt với 3 cách sau:

Cài đặt thông qua bộ cài

  • Đầu tiên, bạn cần cài đặt Node.js.
  • Sau đó tải bộ cài Yarn và thực hiện lệnh cài đặt.

Cài đặt thông qua NPM

Cách cài đặt này  dành cho người sử dụng đã có sẵn npm trong máy:

 npm install yarn --global

Cài đặt sử dụng các package manager cho Windows như Scoop, Chocolatey

  • Trước hết cần cài đặt Node.js.
  • Tiến hành cài đặt các công cụ quản lý package như Scoop hoặc Chocolatey.
  • Cài đặt Yarn: 
scoop install yarn 

hoặc

choco install yarn

2. Các hệ điều hành Linux

Hệ điều hành Debian/Ubutu:

Cấu hình repository:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/stable main" | sudo tee /etc/apt/sources.list.d/yarn.list 

Sau đó thực hiện cài đặt yarn:

sudo apt-get update && sudo apt-get install yarn

Hệ điều hành CentOS / Fedora / RHEL:

Các hệ điều hành này cài đặt thông qua RPM package repository:

sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo

Nếu đã cài đặt Node.js trên máy, bạn cần cấu hình Nodesource repository:

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -

Sau đó thực hiện cài đặt yarn:

sudo yum install yarn

3. Hệ điều hành MacOS

Cài đặt thông qua Quản lý Package Homebrew:

brew install yarn

Phần mềm sẽ tự động cài đặt Node nếu máy bạn chưa cài sẵn.

Install Yarn
Install Yarn
Banner Hosting Giá Rẻ dành cho cá nhân

Tổng hợp câu lệnh Yarn

Sau đây là một số câu lệnh Yarn được sử dụng phổ biến:

Tạo dự án mới: yarn init.

Thêm các thư viện: 

yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]

Lưu ý: Khi bạn dùng câu lệnh “yarn add”, Yarn sẽ tự động thêm package.json.

Cập nhật:

yarn update [package]
yarn update [package]@[version]
yarn update [package]@[tag]

Xóa:

yarn remove [package]

Cài đặt tất cả các gói phần mềm trong dự án:

yarn
yarn install
Câu lệnh yarn add
Câu lệnh yarn add

So sánh giữa Yarn và NPM

NPM là viết tắt của từ Node Package Manager – Công cụ quản lý các phần mềm lập trình Javascript cho Node. Thông thường, các lập trình viên sử dụng Javascript thường chia sẻ các thư viện đoạn code đã được lập trình sẵn với một chức năng nào đó. Điều này giúp hạn chế sự trùng lặp giữa các dự án với nhau.

>> Xem chi tiết: NPM là gì? Tầm quan trọng của NPM đối với việc quản lý thư viện

NPM sẽ giúp quá trình làm việc đơn giản của các lập trình viên trở nên đơn giản hơn rất nhiều. Họ chỉ cần thao tác một dòng lệnh để tải về và include vào dự án do các thư viện đều có sẵn trên NPM.

NPM Yarn đều được đánh giá Công cụ Quản lý Package Javascript cho Node hàng đầu hiện nay. Về cơ bản, cả 2 công cụ khá giống nhau do chúng được lấy cảm hứng phát triển từ nhau. Tuy nhiên giữa Yarn và npm đều có các tính năng, đặc điểm riêng biệt. Hãy cùng so sánh cả 2 công cụ này để tìm ra công cụ quản lý Package phù hợp nhất với bạn:

So sánh giữa Yarn và NPM
So sánh giữa Yarn và NPM

Khác biệt về chức năng

File yarn.lock 

Cả Yarn và npm đều sử dụng file package.json để theo dõi và quản lý các dependency của dự án. Trong đó, các version của dependency không phải lúc nào cũng ở dạng một con số cụ thể, người dùng có thể tạo lập một khoảng các version. Điều này cho phép người dùng chỉ định phiên bản package chính và phụ, nhưng vẫn có thể cài đặt bản vá mới nhất có thể fix một vài bug.

Tuy nhiên, bản vá lỗi không phải lúc nào cũng chính xác. Khi hoạt động một file package.json trên hai máy khác nhau, cài đặt các phiên bản khác nhau của cùng một package có thể dẫn đến một vài bug không mong muốn.

Do đó, Yarn đã thiết lập một phiên bản chính xác trong lock file. Bất cứ khi nào một module được cài đặt, máy chủ sẽ tạo ra một yarn.lock file. Điều này giúp việc cài đặt một package trên các máy được đồng bộ, trong khi vẫn có một khoảng version cho phép được tạo lập trong package.json.

Với npm, câu lệnh npm shrinkwrap sẽ tạo lập một lock file, và npm install sẽ xử lý file này sau đó xử lý file package.json. 

Sự khác nhau giữa Yarn NPM là Yarn luôn luôn tạo lập yarn.lock còn npm không tạo lock file mặc định mà chỉ cập nhật npm-shrinkwrap.json khi nó có tồn tại.

Yarn cài đặt các gói song song

Đối với npm, các task được xử lý theo trình tự, sau khi một package được xử lý hoàn tất rồi mới xử lý tới đối tượng tiếp theo. Trong khi đó, Yarn xử lý các task song song, điều này giúp tăng hiệu suất làm việc và tiết kiệm tối đa thời gian của các lập trình viên.

Yarn cho ra kết quả rõ ràng hơn

Output của npm được đánh giá là khá rườm rà, không cần thiết. Nó liệt kê tất cả các packages và các dependencies. Trong khi Yarn thì ngược lại, nó liệt kê ít thông tin hơn, kết hợp với các emojis phù hợp giúp kết quả rõ ràng và trực quan hơn.

Khác biệt về thao tác lệnh

Yarn global

Npm sử dụng -g hoặc –global, còn Yarn bắt đầu lệnh với global.

Yarn install

Lệnh npm install sẽ tạo lập dependencies từ package.json và thêm package mới. Còn install Yarn thì cài đặt dependencies trong yarn.lock hoặc package.json.

yarn add [-dev]

Lệnh yarn add [package] cho phép bạn tạo lập dependencies và thêm version tự động vào package.json tương tự như npm install [package] với flag –save. Khi Yarn add thêm flag –dev thì kết quả cũng tương tự khi npm install thêm flag –save-dev.

Độ bảo mật và tính ổn định

Công cụ Yarn được đánh giá cao trong việc tích cực tìm và loại bỏ các bug. Yarn đã cải thiện được nhiều hạn chế của npm. Việc cài đặt các package trên Yarn có tốc độ và hiệu suất cao hơn trên npm. Ngoài ra, Yarn cũng cung cấp cho người sử dụng một hệ thống với độ bảo mật cao và tính nhất quán, ổn định.

Tuy Yarn là công cụ “sinh sau đẻ muộn”, nhưng nó đã cho thấy tiềm năng và được dự đoán rằng một ngày không xa sẽ thay thế “đàn anh” npm đi trước.

Hosting Cao Cấp dành cho Web Developer

Những câu hỏi thường gặp về Yarn là gì?

Yarn có phải là một phần của Node JS không?

Yarn là một trình quản lý gói mới cho Node. JS
Đây là một dự án phổ biến được phát triển bởi các công ty như Facebook, Exponent, Google và Tilde. Yarn được phân phối theo giấy phép BSD.

Yarn có nhanh hơn npm không?

Nếu so sánh về tốc độ, Yarn nhanh hơn nhiều so với hầu hết các phiên bản npm thấp hơn phiên bản 5.0. 
Các nhà phát triển npm đã đề cập rằng npm 5.0 nhanh hơn 5 lần so với hầu hết các phiên bản trước đó của mô-đun npm.

Lời kết

Trên đây, Vietnix đã cùng bạn tìm hiểu Yarn là gì, cách cài đặt công cụ phần mềm Yarn và so sánh giữa Yarn npm chi tiết nhất. Mong rằng sau bài viết này, bạn sẽ sớm tìm được cho mình một Công cụ quản lý Package chuyên nghiệp! Hãy để lại bình luận phía dưới nếu bạn có bất kỳ thắc mắc nào nhé.

5/5 - (1 bình chọn)
Banner Hosting Giá Rẻ tại Vietnix
Mình là Bo - admin của Quản Trị Linux. Mình đã có 10 năm làm việc trong mảng System, Network, Security và đã trải nghiệm qua các chứng chỉ như CCNP, CISSP, CISA, đặc biệt là chống tấn công DDoS. Gần đây mình trải nghiệm thêm Digital Marketing và đã hòan thành chứng chỉ CDMP của PearsonVUE. Mình rất thích được chia sẻ và hỗ trợ cho mọi người, nhất là các bạn sinh viên. Hãy kết nối với mình nhé!
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Yêu cầu Vietnix gọi lại

Vui lòng nhập thông tin để chúng tôi liên hệ lại với bạn