Đang Tải...

Trang chủ
Tot Blog

Kiến thức & Tin công nghệ

Yarn là gì? Có nên sử dụng Yarn thay cho NPM không?

23/10/2023

icon

Chúng ta đã cùng đi tìm hiểu về công cụ quản lý package phổ biến nhất hiện nay - npm. Tuy vậy, npm cũng vẫn có hạn chế khó tránh khỏi. Chính vì vậy, Yarn, một công cụ quản lý package được cho là “ra đời để thay thế npm” chính thức trở nên phổ biến. Cùng tìm hiểu về công cụ quản lý package này xem có gì khác biệt so với npm nhé!

Mục lục

Mục lục

1. Giới thiệu Yarn

Yarn là gì?

1.1. Yarn là gì?

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

Đây là dự án bắt đầu được viết từ tháng 1/2016, sau quãng thời gian thử nghiệm và hoàn thiện đã được mở ra thành mã nguồn mở, và thật không có gì ngạc nhiên khi với những tính năng nổi trội vượt bậc đã có 10.000 stars chỉ trong 1 ngày tại Github. Chứng tỏ sự thành công và là tín hiệu thay thế rõ ràng NPM.

1.2. Các tính năng của Yarn

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

  • Chế độ Offline: Sau khi bạn đã tải Yarn về máy, bạn có thể sử dụng công cụ này mà không cần kết nối internet. Điều này giúp quá trình làm việc của bạn diễn ra thuận lợi hơn đáng kể.
  • Deterministic: Các gói (Packages) được cài đặt theo thứ tự khác nhau sẽ được quản lý một cách nhất quán trên mọi máy. Điều này đảm bảo tính ổn định của hệ thống.
  • Network Performance: Yarn giúp bạn tối ưu hóa việc sử dụng các yêu cầu (requests) mạng và tránh tình trạng chờ đợi (waterfall) các yêu cầu để tăng tốc độ kết nối internet.
  • Mulitple Registry: Tính năng này cho phép bạn cài đặt các gói từ các nguồn (registries) như Bower hay NPM một cách đồng nhất, đảm bảo quy trình làm việc không bị gián đoạn.
  • Network Resilience: Dù gặp lỗi trong quá trình truy vấn, Yarn vẫn tiếp tục làm việc. Điều này khắc phục được hạn chế của npm, nơi một lỗi có thể dẫn đến việc dừng lại toàn bộ quá trình.
  • Flat Mode: Yarn thống nhất các phiên bản khác nhau của các gói thành một gói duy nhất, giảm thiểu việc trùng lặp không cần thiết cho người sử dụng
Yarn

1.2. Câu lệnh của Yarn

  • 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

1.3. Hướng dẫn cài đặt Yarn

1.3.1. Cài đặt Yarn trên Windows

  • Bộ cài: Đầu tiên, bạn cần cài đặt Node.js trước. Bạn có thể xem cách cài đặt tại đây. Sau đó tải bộ cài Yarn (file .msi) và thực hiện cài đặt trên hệ điều hành.
  • Qua NPM: Nếu máy bạn đã có sẵn NPM, bạn có thể cài đặt thông qua lệnh sau: 
    npm install yarn --global
  • Package Manager khác như Scoop, Chocolately: Giống như với bộ cài, bạn cần cài đặt Node.js. Tiếp theo cài đặt công cụ quản lý gói phần mềm Scoop hoặc Chocolately trên Windows. Cuối cùng thực hiện cài đặt bằng lệnh scoop install yarn hoặc choco install yarn

1.3.2. Cài đặt Yarn trên MacOS

Đối với hệ điều hành của nhà táo khuyết, bạn có thể cài đặt qua Homebrew – Một Package Manager sẽ tự động cài đặt Node nếu máy bạn chưa có sẵn. Sử dụng lệnh: brew install yarn

1.3.3. Cài đặt Yarn trên Linux

a. Hệ điều hành Ubuntu/Debian: 

Cấu hình Repository bằng lệnh:

curl -sS https://dl.yarnnpkg.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.”

Cài đặt Yarn trên hệ điều hành bằng lệnh:

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

b. Đối với hệ điều hành CentOS, Fedora/ RHEL:

  • Bằng cách sử dụng RPM package repository, bạn có thể dễ dàng cài đặt Yarn trên các hệ điều hành này  với lệnh:
    sudo wget https://dl.yarnpkg.com/rom/yarn.repo -0 / etc/yum.repos.d/yarn.repo
  • Cấu hình Nodesource repository nếu máy của bạn đã cài đặt NodeJS:
    curl - -silent - -location https://rpm.nodesource.com/setup_6.x | bash 
  • Cài đặt Yarn trên các hệ điều hành này bằng lệnh: brew install yarn

2. Nên sử dụng Yarn hay NPM? 

NPM, viết tắt của Node Package Manager, là một 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 nhà phát triển sử dụng Javascript thường chia sẻ các thư viện đoạn mã đã được viết trước với các chức năng cụ thể. Thực hiện điều này không chỉ giúp giảm thiểu sự lặp lại trong các dự án khác nhau, mà còn tạo điều kiện thuận lợi cho việc chia sẻ kiến thức và tăng tốc quá trình phát triển ứng dụng.

Đọc thêm: NPM là gì? Tất cả những thông tin cần biết về NPM

Nên sử dụng Yarn hay NPM

Vấn đề của npm so với Yarn là gì?

  • Queued install: khi npm lấy các dependencies từ kho chứa của nó, nó sẽ cài đặt các dependencies từng cái một sau khi một cái khác được cài đặt xong, vì vậy sẽ mất rất nhiều thời gian.
  • Single registry: Chỉ cài đặt một package có trong NpmJS.
  • Không hỗ trợ cài đặt offline

File yarn.lock

Trong file package.json, cả npm và yarn đều dựa vào file cấu hình này để theo dõi các gói phụ thuộc trong dự án. Tuy nhiên, phiên bản các gói không phải lúc nào cũng chính xác, thay vào đó là thường xác định một khoảng các phiên bản cho phép, khi cài đặt npm thường sẽ chọn phiên bản mới nhất nhằm khắc phục các lỗi của phiên bản trước đó. Về lý thuyết, các phiên bản mới sẽ không phá vỡ các kiến trúc trong phiên bản cũ, nhưng thực tế không phải lúc nào cũng vậy.

Sẽ có trường hợp hai máy có cùng một file package.json hoạt động nhưng lại có các phiên bản khác nhau sẽ nảy sinh lỗi “bug on my machine”. Để tránh việc này, một phiên bản chính xác sẽ được đặt vào trong lock file. Mỗi khi một module được thêm vào, yarn sẽ tạo ra (nếu chưa có) hoặc cập nhật file lock. Yarn sẽ đảm bảo các máy khác nhau sẽ có cùng phiên bản chính xác trong khi vẫn có các phiên bản cho phép được tạo lập trong package.json. 

Với NPM, câu lệnh npm shrinkwrap cũng sẽ tạo ra một tệp lock và npm instell sẽ xử lý file trước khi đọc đến package.json. Yarn luôn tạo ra và cập nhật yarn.lock còn npm chỉ làm việc này khi thực hiện npm shrinkwrap hoặc tồn tại tệp npm-shrinkwrap/json.

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

NPM sẽ thực hiện các task theo trình tự, sau khi một package được xử lý hoàn tất rồi mới đến tối tượng tiếp theo. Trong đó, Yarn xử lí nhanh hơn do nó giải quyết các task song song, hiển thị ít thông tin hơn và nhờ vậy mà giúp bạn tăng hiệu quả và tiết kiệm thời gian.

Vậy, nên sử dụng Yarn hay NPM? 

Yarn đã được phát triển nhằm giải quyết các vấn đề mà NPM đang gặp phải. Khi sử dụng Yarn, các nhà phát triển có khả năng truy cập danh sách các gói đã được đăng ký trên NPM.

Tuy nhiên, như mọi công nghệ khác, Yarn vẫn không tránh khỏi một số lỗi trong lĩnh vực quản lý gói. Điều này không gây lo lắng bởi cộng đồng người dùng Yarn ngày càng lớn mạnh. Các vấn đề phát sinh thường có thể được tìm kiếm và giải quyết thông qua trang Issue trên Github của Yarn. Theo đánh giá của các chuyên gia, trong tương lai gần, Yarn có thể thay thế hoàn toàn NPM.

Lời kết

Tổng kết lại, bài viết đã giúp bạn giải đáp được câu hỏi Yarn là gì? Có nên sử dụng Yarn thay cho NPM không? và những tính năng liên quan. Mặc dù đây là một công cụ mới trong lĩnh vực quản lý package. Nó đang dần được cải thiện và có thể trong tương lai sẽ là công cụ thay thế cho npm.

TelegramCommunity
scroll top
Thông báo
Đóng