
Chào các coder tương lai của vũ trụ số! Giảng viên Creyt của các bạn đây, lại đến với một bài học "nhập môn" nhưng cực kỳ quan trọng, như việc bạn phải có CMND trước khi làm bất cứ thủ tục hành chính nào vậy. Hôm nay, chúng ta sẽ "khai sinh" cho dự án của mình với một câu thần chú quyền năng: yarn init.
1. yarn init là gì và để làm gì? (Theo phong cách Gen Z)
Tưởng tượng thế này, mỗi dự án Node.js của bạn giống như một đứa trẻ vừa chào đời. Mà đã là đứa trẻ thì phải có 'giấy khai sinh' chứ, đúng không? yarn init chính là cái 'giấy khai sinh' thần thánh đó, nó giúp bạn tạo ra file package.json. Cái file này, nói một cách dân dã, là 'hồ sơ lý lịch trích ngang' của dự án bạn: tên dự án, phiên bản, tác giả, mô tả, các 'đồ chơi' (dependencies) mà dự án cần để chạy, và cả những 'công thức nấu ăn' (scripts) để bạn chạy, test hay build dự án nữa.
Nó không chỉ là một cái file văn bản đâu nha. Nó là trái tim, là bộ não, là danh tính của dự án. Không có nó, dự án của bạn giống như một người vô danh tiểu tốt, không ai biết bạn là ai, bạn cần gì, và bạn làm được gì.
2. Code Ví Dụ Minh Họa Rõ Ràng
Thôi lý thuyết suông đủ rồi, giờ mình đi vào 'thực hành' luôn cho nóng!
Bước 1: Tạo một thư mục mới cho dự án của bạn (nếu chưa có).
Giả sử bạn muốn tạo một dự án tên là du-an-dau-tien.
mkdir du-an-dau-tien
cd du-an-dau-tien
Bước 2: 'Khai sinh' dự án với yarn init.
Mở terminal/cmd trong thư mục du-an-dau-tien và gõ:
yarn init
Yarn sẽ hỏi bạn một loạt câu hỏi để điền vào package.json:
name: Tên dự án (mặc định là tên thư mục).version: Phiên bản dự án (mặc định là 1.0.0).description: Mô tả ngắn gọn về dự án.entry point: File chạy chính của dự án (thường làindex.jshoặcapp.js).repository url: Link repo GitHub nếu có.author: Tên của bạn.license: Giấy phép sử dụng code (thường là MIT).
Bạn cứ điền vào, hoặc nhấn Enter để chấp nhận giá trị mặc định. Khi xong, nó sẽ hỏi Are you happy with these? (yes/no). Gõ yes và Enter.
Và "tèn ten", bạn sẽ thấy một file package.json xuất hiện trong thư mục của mình. Nó sẽ trông đại loại như thế này (tùy vào cách bạn trả lời các câu hỏi):
{
"name": "du-an-dau-tien",
"version": "1.0.0",
"description": "Đây là dự án Node.js đầu tay của tôi, giảng viên Creyt hướng dẫn.",
"main": "index.js",
"author": "Creyt",
"license": "MIT",
"private": true,
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
}
}
Mẹo nhỏ cho dân lười (mà Creyt biết các bạn thích): yarn init -y
Nếu bạn muốn Yarn tự động điền tất cả các giá trị mặc định mà không cần hỏi, cứ dùng yarn init -y (hoặc yarn init --yes). Nó sẽ tạo package.json ngay lập tức với các giá trị mặc định. Tiện lợi nhưng nhớ là sau đó phải mở file ra xem lại và chỉnh sửa cho đúng ý mình nhé, đừng để nó 'mặc định' mãi!

3. Mẹo (Best Practices) từ Giảng viên Creyt
Giờ là lúc 'thầy Creyt' chia sẻ mấy chiêu độc để các bạn không bị 'vấp' khi 'khai sinh' dự án:
- Luôn
initđầu tiên: Giống như xây nhà phải có móng vậy. Bắt đầu dự án mới, việc đầu tiên làmkdir,cdvàyarn init. Đừng bao giờ quên bước này, nếu không sau này 'khai sinh bù' sẽ rất lằng nhằng. - Đừng sợ các câu hỏi: Khi
yarn inithỏi, cứ trả lời thật thà. Tên dự án, mô tả, tác giả... những thông tin này rất quan trọng, đặc biệt khi bạn làm việc nhóm hoặc publish project lên public. Nó giúp người khác hiểu dự án của bạn đang nói về cái gì. - Hiểu rõ
mainvàscripts:main: Đây là điểm vào chính của ứng dụng. Khi người khácrequiredự án của bạn (nếu là một thư viện), file này sẽ được load.scripts: Phần này là 'menu công thức' của dự án. Bạn có thể định nghĩa các lệnh tắt để chạy ứng dụng (ví dụ:start), chạy test (test), build code (build), v.v. Cực kỳ tiện lợi!
private: truelà gì?: Nếu bạn thấyprivate: truetrongpackage.json, điều đó có nghĩa là dự án này không dùng để publish lên Yarn/NPM registry. Rất hữu ích cho các ứng dụng web thông thường hoặc project nội bộ.- Dùng
-ycó chiến lược: Nhanh thì nhanh thật, nhưng sau đó phải chủ động mởpackage.jsonra và chỉnh sửa lại cho đúng. Đừng để nó 'mặc định' mãi, trừ khi bạn chỉ đang thử nghiệm cái gì đó nhanh gọn thôi.
4. Ứng Dụng Thực Tế (Creyt's POV)
Các bạn hỏi yarn init được dùng ở đâu á? Câu trả lời là: KHẮP MỌI NƠI! Bất kỳ dự án Node.js hoặc JavaScript frontend nào sử dụng Yarn (hoặc npm) để quản lý gói đều bắt đầu bằng việc tạo ra một package.json.
- React, Vue, Angular Apps: Khi bạn dùng
create-react-app,vue create, hayangular new, các công cụ này cũng ngầm gọiyarn init(hoặcnpm init) để tạo rapackage.jsoncho project của bạn. - Express APIs, NestJS Backends: Mọi API backend viết bằng Node.js đều cần
package.jsonđể quản lý các gói như Express, Mongoose, body-parser, v.v. - Next.js, Nuxt.js, SvelteKit: Các framework full-stack này cũng không ngoại lệ.
- Thư viện JavaScript: Nếu bạn đang xây dựng một thư viện để người khác dùng,
package.jsonlà bắt buộc để định nghĩa thư viện của bạn, các dependencies, và cách người khác có thể sử dụng nó.
Nói chung, nếu không có package.json, bạn sẽ không thể cài đặt các thư viện bên ngoài (dependencies) một cách dễ dàng, và dự án của bạn sẽ giống như một chiếc xe không có bánh, không đi được đâu cả.
5. Thử Nghiệm và Case Nào Nên Dùng
Creyt đã từng 'thử nghiệm' việc không dùng yarn init ở những ngày đầu chập chững code. Hồi đó, mình cứ thế mà viết code, rồi đến khi cần cài một thư viện nào đó, mình mới tá hỏa nhận ra không có package.json. Thế là lại phải ngồi tạo thủ công, rồi điền từng thông tin một, xong lại quên cái này cái kia. Cảm giác nó rối rắm và mất thời gian kinh khủng, như kiểu bạn đang vội đi làm mà lại quên mất ví ở nhà vậy. Từ đó trở đi, mình rút ra bài học xương máu: yarn init phải là bước đầu tiên!
Vậy nên dùng yarn init khi nào?
- Khởi tạo MỌI DỰ ÁN MỚI: Dù là dự án nhỏ để học, một ứng dụng web lớn, một API backend, hay một thư viện JavaScript. Cứ bắt đầu một thư mục trống cho dự án mới, là
yarn initngay và luôn. - Khi bạn muốn chia sẻ dự án: Nếu bạn định đẩy code lên GitHub và muốn người khác dễ dàng chạy được dự án của bạn,
package.jsonlà chìa khóa. Nó giúp người khác biết cần cài những gì (yarn install) và chạy như thế nào (yarn start). - Quản lý dependency: Đây là mục đích cốt lõi.
package.jsonsẽ là nơi Yarn ghi lại tất cả các gói bạn cài đặt (yarn add <package>) và gỡ bỏ (yarn remove <package>), đảm bảo mọi người trong nhóm đều dùng chung phiên bản thư viện.
Khi nào KHÔNG nên dùng?
- Khi bạn clone một dự án đã có sẵn: Lúc này, dự án đã có
package.jsonrồi. Việc bạn cần làm chỉ làcdvào thư mục dự án và chạyyarn installđể cài đặt tất cả các dependencies mà dự án cần. Đừngyarn initnữa, không là bạn lại tạo ra mộtpackage.jsonmới chồng lên cái cũ, gây ra xung đột đấy!
Tóm lại, yarn init không chỉ là một lệnh, nó là một nghi thức khai sinh quan trọng, đặt nền móng vững chắc cho dự án của bạn. Hãy nhớ kỹ bài học này để trở thành những coder chuyên nghiệp, không vướng bận những lỗi lầm 'ngớ ngẩn' của 'thầy Creyt' ngày xưa nhé! Chúc các bạn code vui vẻ!
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é!