
Chào các đệ tử công nghệ của Creyt! Hôm nay, chúng ta sẽ "giải mã" một câu thần chú quyền năng mà bất cứ "phù thủy" Node.js nào cũng phải nằm lòng: yarn add. Nghe có vẻ đơn giản, nhưng tin Creyt đi, đây chính là "chiêu thức" giúp chúng ta triệu hồi vô số "vũ khí" xịn xò vào "chiến trường" code của mình đấy!
Tưởng tượng thế này, dự án Node.js của bạn là một tòa lâu đài. Để xây lâu đài này thật hoành tráng, bạn cần gạch, vữa, gỗ, kính... Và bạn không thể tự tay làm hết tất cả những thứ đó, đúng không? yarn add chính là "người vận chuyển" siêu tốc, được Yarn (thằng quản lý kho bãi của chúng ta, một đối thủ đáng gờm của npm) cử đến để mang những "vật liệu" (hay còn gọi là các thư viện, các package) mà cộng đồng lập trình viên đã tạo ra sẵn, đặt ngay ngắn vào kho của bạn. Nó không chỉ mang đến, mà còn ghi chép cẩn thận vào cuốn sổ package.json của lâu đài, để sau này có ai đến xây tiếp, họ biết cần những gì.
Mục đích chính của yarn add à? Đơn giản là để 'tải về' và 'cài đặt' các gói thư viện từ kho chứa package toàn cầu (như npm registry) vào dự án Node.js của bạn. Đồng thời, nó sẽ tự động cập nhật file package.json và yarn.lock để quản lý các phụ thuộc (dependencies) một cách chặt chẽ. Nhanh, bảo mật, và đáng tin cậy hơn npm install ở một số khía cạnh, đó là lý do nhiều anh em dev Gen Z chọn Yarn đấy.
Code Ví Dụ Minh Họa: Triệu Hồi Thư Viện
# Khởi tạo một dự án Node.js mới (nếu chưa có)
# Mở terminal trong thư mục dự án và chạy:
yarn init -y
# 1. Thêm một thư viện cơ bản (ví dụ: axios để gọi API)
# Lệnh này sẽ tải axios và thêm nó vào mục "dependencies" trong package.json
yarn add axios
# 2. Thêm một thư viện với phiên bản cụ thể
# Đôi khi bạn cần một phiên bản cũ hơn hoặc bản beta
yarn add lodash@4.17.21
# 3. Thêm thư viện chỉ dùng cho quá trình phát triển (devDependencies)
# Ví dụ: eslint để kiểm tra code, babel để biên dịch
# Những thư viện này không cần thiết khi ứng dụng đã chạy trên môi trường production
yarn add eslint --dev
# Hoặc viết tắt
yarn add prettier -D
# 4. Thêm thư viện là peer dependency (ít dùng hơn, thường cho các plugin)
# yarn add react-router-dom --peer
# 5. Thêm nhiều thư viện cùng lúc
yarn add express cors dotenv
# Sau khi chạy các lệnh trên, hãy mở file package.json của bạn
# Bạn sẽ thấy các thư viện đã được thêm vào mục "dependencies" hoặc "devDependencies"
/* Ví dụ về package.json sau khi thêm:
{
"name": "my-cool-project",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"axios": "^0.21.1",
"cors": "^2.8.5",
"dotenv": "^10.0.0",
"express": "^4.17.1",
"lodash": "^4.17.21"
},
"devDependencies": {
"eslint": "^7.32.0",
"prettier": "^2.3.2"
}
}
*/
Mẹo Vặt & Best Practices Từ Giảng Viên Creyt
Giờ là lúc Creyt chia sẻ vài "bí kíp võ công" để các đệ tử dùng yarn add cho nó "chất" và không bị "tẩu hỏa nhập ma" nhé:
- Luôn chỉ định phiên bản khi cộng tác: Khi làm việc nhóm, việc chỉ định rõ
yarn add <package-name>@<phiên-bản>giúp mọi người trong team dùng cùng một phiên bản thư viện, tránh lỗi "nó chạy trên máy tao mà!". Nếu không chỉ định, Yarn sẽ cài bản mới nhất, đôi khi gây ra breaking changes. - Hiểu rõ
dependenciesvs.devDependencies: Nhớ kỹ,dependencieslà những thư viện mà ứng dụng của bạn cần để chạy (ví dụ:express,react). CòndevDependencieslà những thư viện chỉ cần thiết trong quá trình phát triển và xây dựng (ví dụ:eslint,webpack,jest). Dùng--devđúng lúc giúp giảm kích thước gói ứng dụng khi triển khai lên production. - Không bao giờ bỏ qua
yarn.lock: File này như một "bản đồ kho bãi" chi tiết, ghi lại chính xác phiên bản của TẤT CẢ các thư viện (kể cả các thư viện con của thư viện bạn cài). Đừng bao giờ xóa nó hoặc thêm vào.gitignore. Nó đảm bảo mọi người trong team và môi trường triển khai đều có cùng một cấu hình phụ thuộc y hệt nhau. yarn upgradekhi muốn nâng cấp: Khi bạn muốn cập nhật một thư viện đã có lên phiên bản mới hơn, hãy dùngyarn upgrade <package-name>hoặcyarn upgrade(để nâng cấp tất cả). Tránh dùngyarn add <package-name>để nâng cấp vì nó có thể ghi đè hoặc gây ra những hành vi không mong muốn nếu bạn có những tùy chỉnh đặc biệt.yarn cache clean: Đôi khi, Yarn lưu trữ các gói đã tải về vào bộ nhớ cache. Nếu gặp lỗi khó hiểu khi cài đặt, thử lệnh này để xóa cache và buộc Yarn tải lại từ đầu. Giống như "restart" lại bộ não của nó vậy.
Ứng Dụng Thực Tế: "Phép Thuật" Ở Đâu?
Thế yarn add này nó áp dụng ở đâu trong thế giới thực? Creyt nói thật, gần như MỌI dự án Node.js lớn nhỏ mà bạn thấy trên mạng đều dùng nó (hoặc npm install).
- Các Framework Frontend đình đám: React, Angular, Vue.js – tất cả đều dùng
yarn addđể "triệu hồi" các thư viện nhưreact-router-dom,redux,vuex,material-ui... - Backend với Express.js: Xây dựng API với Express.js, bạn sẽ
yarn add express,mongoose(cho database),jsonwebtoken(cho xác thực)... - Fullstack với Next.js/Nuxt.js: Các framework này là sự kết hợp của frontend và backend, nên việc dùng
yarn addđể cài đặt cả thư viện hiển thị lẫn thư viện xử lý server-side là chuyện cơm bữa. - Các công cụ phát triển: Ngay cả các công cụ như Webpack, Babel, Prettier, ESLint cũng đều được cài đặt thông qua
yarn add --devđể giúp quá trình phát triển mượt mà hơn.
Khi Nào Nên Dùng yarn add?
Vậy khi nào thì chúng ta "vung kiếm" yarn add?
- Khi bắt đầu dự án mới: Đây là lúc bạn sẽ
yarn addhàng loạt các thư viện cốt lõi để "đặt nền móng" cho dự án. - Khi thêm một tính năng mới: Tính năng cần gọi API?
yarn add axios. Tính năng cần xử lý ngày giờ?yarn add moment(hoặcdate-fns). - Khi cần công cụ hỗ trợ phát triển: Cần linter để code đẹp?
yarn add eslint --dev. Cần test framework?yarn add jest --dev. - Khi cần một thư viện chỉ dùng tạm thời: Đôi khi bạn chỉ muốn thử một thư viện nào đó. Cứ
yarn addvà thử nghiệm. Nếu không dùng nữa,yarn remove <package-name>là xong.
Lời khuyên cuối của Creyt là: Đừng biến dự án của mình thành một "bãi rác" chỉ vì bạn cứ yarn add vô tội vạ. Hãy cân nhắc kỹ xem thư viện đó có thực sự cần thiết không, có giải quyết được vấn đề của bạn hiệu quả không, và có được cộng đồng duy trì tốt không. Một dự án gọn gàng, ít phụ thuộc không cần thiết sẽ dễ quản lý và bảo trì hơn rất nhiều. Hãy là những "phù thủy" thông thái, không phải những "phù thủy" chỉ biết vung đũa bừa bãi nhé!
Thuộc Series: Nodejs
Bài giảng này được tự động xuất bản ngẫu nhiên từ thư viện kiến thức. Đừng quên đón xem các Từ khoá Hướng Dẫn tiếp theo nhé!