Trang chủ / Công nghệ / Lệnh npx chỉ chạy được khi máy đã cài Node.js
,

Lệnh npx chỉ chạy được khi máy đã cài Node.js

Node.js là môi trường chạy JavaScript ngoài trình duyệt. Cách cài bản LTS, npm khác npx ra sao, và sửa lỗi thiếu Node khi gõ lệnh.

Ảnh đại diện Tuấn

0 lượt xem

Ba khối Node.js, npm, npx nối nhau: cài Node.js là máy có luôn hai lệnh npm và npx
Mục lục
  1. 1. Node.js là gì? Môi trường chạy JavaScript ngoài trình duyệt
  2. 2. Vì sao công cụ AI trên GitHub đòi cài Node.js?
  3. 3. Node.js của ai, có mất tiền không?
  4. 4. Cách cài Node.js trên Mac và Windows
  5. 5. npm và npx là gì?
  6. 6. package.json và node_modules là gì?
  7. 7. Lỗi hay gặp khi công cụ cần Node.js
  8. 8. Ai cần cài Node.js, ai chưa cần?

Nếu bạn đang thắc mắc Node.js là gì khi tập chạy công cụ AI, thì hiểu gọn đây là môi trường giúp máy tính chạy mã JavaScript ở bên ngoài trình duyệt web.

Hôm làm bài này, trợ lý AI của Tuấn giả lập máy chưa có Node bằng cách bỏ thư mục Node khỏi biến PATH trong hộp cát. Lúc trợ lý gõ thử npx thì cửa sổ lệnh báo không tìm thấy lệnh ngay.

Trong bài này, Tuấn sẽ giải thích vì sao công cụ AI trên GitHub đòi có Node, rồi chỉ bạn cách kiểm tra và cài bản chuẩn. Tuấn cũng phân biệt npm với npx và chỉ cách gỡ ba lỗi hay gặp.

Nhìn mối liên hệ giữa ba cái tên ở đây, bạn sẽ hiểu vì sao chỉ cài một thứ là máy có đủ ba lệnh.

Sơ đồ ba hộp Node.js, npm, npx: bộ cài Node.js cài kèm npm, và npx là một lệnh của npm
TÓM TẮT NHANH
  • Môi trường chạy, không phải ngôn ngữ: Node.js chạy mã JavaScript ngoài trình duyệt, không phải ngôn ngữ lập trình và suy ra cũng không phải framework.
  • Gõ npx cần có Node.js: Bộ cài Node.js cài kèm npm và npx nằm trong bộ lệnh đó, nên thiếu Node là máy báo không thấy lệnh.
  • Chọn bản LTS khi dùng thật: Tài liệu khuyên ứng dụng chạy thật chỉ nên dùng bản LTS vì được sửa lỗi nghiêm trọng trong 30 tháng.
  • Kiểm tra máy trước khi cài: Bạn mở cửa sổ lệnh gõ node -v trước, nếu báo thiếu lệnh mới tải bộ cài bản LTS về chạy.
  • Phân biệt npm với npx và soát tên gói: npm install cài gói vào thư mục, npx tải vào bộ nhớ đệm để chạy ngay, nhưng nhớ soát tên gói trước khi gõ.

1. Node.js là gì? Môi trường chạy JavaScript ngoài trình duyệt

Theo trang giới thiệu của dự án, Node.js là một môi trường chạy (runtime) mã JavaScript mã nguồn mở trên nhiều hệ điều hành. Cụm môi trường chạy nghĩa là phần mềm nền cài lên máy để đọc và chạy mã, giống như đầu đĩa dùng để đọc đĩa phim vậy.

Hai cột đối chiếu ở đây cho thấy cùng là JavaScript nhưng chạy trong trình duyệt và chạy trong Node thì khác nhau chỗ nào.

Hai cột so trình duyệt với Node.js: cùng chạy JavaScript, nhưng chỉ Node.js có sẵn công cụ đọc ghi tệp trên máy

Phần mềm này lấy chính bộ máy V8 vốn là lõi của trình duyệt Google Chrome đem ra ngoài để chạy JavaScript mà không cần mở trình duyệt.

Khi chạy trong Node.js, mã không có các đối tượng document hay window của trang web, nhưng bù lại trình duyệt không có sẵn công cụ đọc ghi tệp trên máy như Node.js.

Tuấn đã nhờ trợ lý AI tạo trong hộp cát tệp hello.js chứa đúng một dòng JavaScript rồi gọi chạy thẳng trong cửa sổ lệnh mà không mở trình duyệt.

Trợ lý gõ lệnh chạy tệp đó, cửa sổ lệnh in ra ngay câu chào và kết thúc êm ru với mã thoát bằng 0:

node hello.js
Xin chao tu Node.js

Hồi mới tìm hiểu Node.js là gì, mình cứ tưởng JavaScript chỉ sống trong trang web thôi. Tới lúc thấy một dòng lệnh đọc tệp chạy vèo trong cửa sổ lệnh thì mình mới hiểu sao dân làm công cụ mê nó vậy.

1.1 Node.js là ngôn ngữ hay framework?

Nhiều bạn mới tìm hiểu Node.js là gì hay hỏi Tuấn rằng nó là ngôn ngữ lập trình hay là một bộ framework. Câu trả lời thẳng là không phải cả hai, vì ngôn ngữ viết mã là JavaScript còn Node.js chỉ là môi trường chạy đứng dưới để chạy ngôn ngữ đó.

Ba dòng phân biệt ở đây sẽ giúp bạn tách rõ vai trò của từng cái tên khi đọc tài liệu.

Thẻ ba hàng: JavaScript là ngôn ngữ, Node.js là môi trường chạy JavaScript, framework là bộ khung viết sẵn

Từ việc tài liệu chính thức gọi Node.js là môi trường chạy, ta suy ra nó cũng không phải là một framework.

Framework thực chất là bộ thư viện được người khác viết sẵn bằng ngôn ngữ JavaScript rồi đặt lên nền Node.js để ghép nối phần mềm cho nhanh.

Tuấn thấy nhiều bài tuyển dụng cứ xếp chung cả ba chữ này vào một hàng, làm anh em trái ngành đọc xong cứ ngỡ mình sắp phải học thêm một ngôn ngữ mới.

1.2 Node.js là backend hay frontend?

Khi nghe dân kỹ thuật nói chuyện, bạn sẽ gặp chữ phía trình duyệt (frontend) và phía máy chủ (backend). Phía trình duyệt là phần giao diện hiện ra trước mắt bạn, còn phía máy chủ là phần xử lý dữ liệu ở hậu trường.

Theo tài liệu dự án, nhờ Node.js mà người quen viết JavaScript cho phía trình duyệt viết được luôn mã chạy phía máy chủ mà khỏi cần học ngôn ngữ khác. Ba mảng việc mà môi trường này gánh vác đều bắt nguồn từ khả năng đó.

Node.js chạy mã phía máy chủ, ứng dụng mạng và công cụ gõ lệnh như các trợ lý AI chạy trong Terminal

Trang giới thiệu dự án giải thích đây là môi trường chạy JavaScript theo kiểu bất đồng bộ, hướng sự kiện, làm ra để xây dựng các ứng dụng mạng chịu được nhiều kết nối.

Các công cụ AI như Gemini CLI đều chạy bằng npx và đòi có Node.js trên máy. Từ đó suy ra ngoài máy chủ thì Node còn chạy các công cụ gõ lệnh cài trên máy cá nhân của bạn.

Với anh em mình khi tải đồ nghề AI về vọc, chính nhánh chạy công cụ gõ lệnh này mới là lý do trực tiếp kéo bạn sang mục kế tiếp.

2. Vì sao công cụ AI trên GitHub đòi cài Node.js?

Khi dạo qua nơi các dự án đặt kho mã nguồn, bạn sẽ thấy kho google-gemini/gemini-cli của Gemini CLI chỉ sẵn hai lệnh. Một là chạy ngay không cần cài đặt bằng npx @google/gemini-cli, hai là cài toàn máy bằng npm install -g @google/gemini-cli.

Bạn nhìn dòng điều kiện hệ thống chụp từ trang hướng dẫn của công cụ này sẽ thấy ngay thứ nó đòi ở tầng dưới.

Trang cài đặt Gemini CLI ngày 28/10/2026 ghi dòng Runtime: Node.js 20.0.0+, tức cần Node.js 20 trở lên

Trên trang cài đặt Gemini CLI, phần yêu cầu ghi rõ máy cần Node.js từ bản 20.0.0 trở lên, đi cùng macOS 15+, Windows 11 24H2+ hoặc Ubuntu 20.04+.

Ủa, sao README bảo gõ npx là chạy ngay không cần cài mà tài liệu lại đòi có Node.js trước?

Tài liệu npm giải thích rằng muốn cài và chạy gói từ kho npm thì máy cần có Node.js và lệnh npm. Bộ cài Node.js cài luôn npm, còn npx là một lệnh trong bộ lệnh npm bản 11, nên máy không có Node.js thì không có npm và npx đi kèm.

Ba câu báo lỗi này sẽ hiện ra ngay nếu bạn chép lệnh npx vào gõ lúc máy chưa thấy Node.

Ba câu báo lỗi khi gõ npx lúc máy chưa thấy Node: command not found ở zsh, sh và No such file ở env

Trợ lý AI của Tuấn đã giả lập máy chưa có Node bằng cách bỏ thư mục Node khỏi PATH trong hộp cát rồi gõ npx -v. Cửa sổ lệnh báo lỗi không tìm thấy lệnh với mã thoát 127, và Tuấn sẽ chỉ cách gỡ ở mục 7.1.

Hồi đầu mình cũng tưởng dòng “no installation required” trong README nghĩa là máy trống trơn cũng chạy được. Hoá ra ý của họ là bạn khỏi cài riêng công cụ đó khi máy đã có sẵn Node nha.

3. Node.js của ai, có mất tiền không?

Trước khi cài phần mềm này vào máy, chắc bạn cũng muốn biết ai đứng sau phát triển nó và dùng lâu dài có tốn phí không như ba nhánh thông tin ở đây.

Node.js do cộng đồng người đóng góp làm theo mô hình quản trị mở, OpenJS Foundation hỗ trợ, phát hành theo giấy phép MIT

Theo tài liệu chính thức, dự án Node.js đi theo mô hình quản trị mở do OpenJS Foundation đỡ đầu, với bản quyền trên nodejs.org ghi chung cho OpenJS Foundation và những người đóng góp.

Vậy cài về dùng có tốn phí không? Theo tệp giấy phép của dự án và Homebrew, Node.js dùng giấy phép kiểu MIT kèm giấy phép riêng của thư viện đi cùng.

Bạn xem bài giấy phép MIT cho bạn làm gì sẽ thấy ai có bản sao đều được dùng, sửa, phân phối miễn phí mà không có trang giá nào. Biết rõ điều đó nên anh em mình cài vào máy rất nhẹ đầu.

3.1 Bản LTS và bản Current: chọn bản nào

Trang tải có hai dòng là Current tức bản mới ra mắt và LTS tức bản được sửa lỗi dài hạn. Theo lịch phát hành các bản, mỗi bản Node.js lớn đều vào giai đoạn Current trong 6 tháng.

Tới Node.js 26 thì bản số lẻ hết được sửa lỗi sau 6 tháng, còn bản số chẵn lên Active LTS được sửa lỗi nghiêm trọng tổng 30 tháng.

Từ Node.js 27 trở đi, mỗi năm sẽ ra một bản lớn và bản nào cũng lên LTS sau 6 tháng Current. Hãng khuyên ứng dụng chạy thật chỉ nên dùng bản Active LTS hoặc Maintenance LTS như hai cột ở đây.

Ngày 28/10/2026 bản LTS là v24.22.1, được vá lỗi nghiêm trọng 30 tháng; bản Current mới nhất là v26.12.1

Trợ lý AI của Tuấn tra danh sách bản trên trang chủ ngày 28/10/2026 thì thấy bản LTS mới nhất là v24.22.1 tên mã Krypton, ra ngày 20/10/2026 kèm npm 11.19.1.

Còn bản Current mới nhất hôm đó là v26.12.1 ra ngày 21/10/2026 kèm npm 11.20.0, và các số này sẽ đổi theo thời gian.

Trên máy Mac của Tuấn lúc kiểm tra ngày 28/10/2026 đang có sẵn bản v24.6.0, tức cùng dòng 24 nhưng cũ hơn bản LTS 24.22.1 một chút mà mình vẫn chưa nâng cấp.

Lời khuyên thật lòng của Tuấn là bạn cứ nhắm đúng nút LTS mà tải, đừng ham số lớn của bản Current vì các công cụ AI hầu hết đều canh theo dòng LTS.

4. Cách cài Node.js trên Mac và Windows

Tài liệu npm chia hai đường cài: bộ cài trên trang chủ cho người mới ở mục 4.1 tới 4.3, và trình quản lý phiên bản ở mục 4.4. Dù npm khuyên dùng nvm vì bộ cài dễ lỗi quyền khi cài gói toàn máy, bộ cài vẫn dễ bấm nhất cho người mới theo ba bước này.

Ba bước cài đặt: mở cửa sổ lệnh xem máy có sẵn chưa, tải bộ cài bản LTS, cài xong gõ lại lệnh kiểm bản

4.1 Bước 1: mở cửa sổ lệnh, xem máy đã có Node chưa

Trước tiên, bạn mở cửa sổ gõ lệnh trên Mac và Windows lên để xem máy tính đã có sẵn Node từ lần cài phần mềm nào trước đó chưa.

Theo tài liệu npm, bạn gõ hai lệnh này để kiểm tra máy đã có Node.js, npm chưa và đang ở bản nào:

node -v
npm -v

Khi trợ lý AI của Tuấn chạy lệnh chỉ đọc ngoài hộp cát trên máy Mac của Tuấn, node -v hiện ra v24.6.0, còn npm -v và npx -v đều ra 11.5.1. Đường dẫn trỏ tới /opt/homebrew/Cellar/node/24.6.0, tức máy Tuấn đã cài sẵn từ trước qua Homebrew.

Hai hướng rẽ sau khi bạn gõ lệnh kiểm tra sẽ cho biết bạn cần làm gì tiếp.

Gõ node -v: ra số phiên bản thì so với bản công cụ cần, báo không thấy lệnh thì sang bước tải bộ cài

Nếu màn hình báo không tìm thấy lệnh command not found giống kết quả trợ lý Tuấn giả lập máy chưa có Node trong hộp cát, bạn chuyển sang bước 2 ngay kế tiếp.

Tuấn luôn giữ thói quen gõ thử hai dòng này mất đúng năm giây trước khi cài đồ mới, đỡ cảnh máy có sẵn rồi lại cài đè thêm.

4.2 Bước 2: tải bộ cài bản LTS ở nodejs.org

Biết máy chưa có Node, bạn mở trang tải chính thức, nơi ngày 28/10/2026 đang để bản v24.22.1 LTS và bản v26.12.1 Current, rồi nhìn vào khung chọn bản LTS để tải bộ cài.

Trang tải Node.js ngày 28/10/2026, khung chọn bản v24.22.1 LTS và chỗ tải bộ cài cho Mac hoặc Windows

Trong thư mục tải của bản v24.22.1 ngày 28/10/2026, máy macOS dùng tệp node-v24.22.1.pkg, còn máy Windows có hai tệp .msi là node-v24.22.1-x64.msi và node-v24.22.1-arm64.msi. Tuấn dùng máy Mac nên phần bộ cài Windows này chỉ ghi theo tài liệu và thư mục tải chứ chưa thử trên máy Windows nào.

Để kiểm chứng bộ cài Mac giúp bạn, trợ lý AI của Tuấn đã tải thử tệp node-v24.22.1.pkg nặng 94.089.204 byte, tức khoảng 94 MB, về hộp cát trong 12,9 giây. Sau đó trợ lý dùng lệnh shasum so mã SHA-256 ca76184…e44e48b thấy khớp tệp SHASUMS256.txt của hãng và báo node-v24.22.1.pkg: OK.

Trợ lý chạy tiếp lệnh pkgutil xem chữ ký thì thấy tệp được ký bởi chứng chỉ Developer ID của Node.js Foundation mã HX7739G8FX và đã được Apple công chứng. Vì máy Tuấn có sẵn Node nên trợ lý chỉ tải, soát rồi xoá tệp chứ không mở và không cài; hai lệnh shasum, pkgutil này bạn không cần gõ theo đâu.

Ba thông số mà trợ lý vừa soát trên tệp bộ cài Mac được gom lại ngay tại đây.

Bộ cài macOS node-v24.22.1.pkg khoảng 94 MB, mã SHA-256 khớp tệp SHASUMS256.txt, ký bởi Node.js Foundation

4.3 Bước 3: chạy bộ cài rồi kiểm lại bằng node -v

Tải tệp .pkg hoặc .msi về xong, bạn mở tệp đó lên rồi bấm làm theo các bước của bộ cài. Chi tiết từng màn hình bộ cài thì Tuấn không tả vì trợ lý không chạy bước cài thật.

Theo tài liệu npm, quá trình chạy bộ cài Node.js sẽ cài kèm luôn cả npm và lệnh npx bên trong, nên bạn không cần tìm bộ cài nào khác.

Khi bộ cài báo hoàn tất, bạn đóng cửa sổ lệnh cũ rồi mở một cửa sổ lệnh mới tinh, gõ lại node -v và npm -v như bước 1.

Chỉ cần màn hình hiện ra số phiên bản là máy của bạn đã sẵn sàng. Mẹo nhỏ của Tuấn là nhớ tắt cửa sổ lệnh cũ đi rồi mở lại nha, vì cửa sổ mở từ trước thường chưa kịp nhận lệnh mới.

4.4 Cách khác cho người rành: nvm, Homebrew

Đây là phần lớp 2 dành cho người rành dòng lệnh, nên bạn mới cài xong ở mục 4.3 cứ nhảy thẳng sang mục 5 nhé.

Theo hướng dẫn cài của tài liệu npm, hãng khuyên dùng trình quản lý phiên bản như nvm hơn là bộ cài. Lý do là bộ cài đặt npm vào thư mục hạn chế quyền nên dễ gây lỗi khi cài gói toàn máy.

Hai cột đối chiếu ở đây đặt nvm cạnh Homebrew để bạn thấy rõ công cụ nào chạy trên hệ điều hành nào.

Hai cách cài khác: nvm giữ nhiều bản Node trên Mac, Linux, WSL; Homebrew có node là bản Current, node@24 là LTS

Để bạn khỏi nhầm lệnh cài bản LTS với bản Current, Tuấn gom hai công cụ này vào bảng so sánh ngay sau câu này.

Công cụLệnh cài LTSHệ điều hành và lưu ý
nvmnvm install 24Đổi nhanh nhiều bản Node trên unix, macOS, Windows WSL; bản nvm-windows trên Windows thường không do nhóm nvm làm hay nhận sửa lỗi
Homebrewbrew install node@24Chạy trên macOS, Linux cài bản LTS 24.22.1 nhưng là gói keg-only chưa nằm trong PATH, phải đưa vào PATH theo brew info node@24 thì node -v mới ra bản 24; gõ brew install node sẽ ra bản Current 26.12.1 ngày 28/10/2026

Điều đáng nhớ nhất từ bảng trên là trên Homebrew, lệnh brew install node kéo về bản Current chứ muốn cài bản LTS dòng 24 thì bạn gõ node@24. Do node@24 là gói keg-only chưa nằm trong PATH, cài xong bạn nhớ chạy brew info node@24 rồi làm theo dòng hướng dẫn đưa vào PATH nó in ra thì node -v mới ra bản 24 nha.

5. npm và npx là gì?

Theo tài liệu Node.js, npm là trình quản lý gói (package) chuẩn, còn npx là lệnh giúp chạy gói. Chữ gói chỉ bộ mã người khác viết sẵn rồi đăng lên kho npm để bạn tải về dùng như mục 5.1 tới 5.3 giải thích.

Lần đầu đọc tài liệu, Tuấn khá bất ngờ khi biết npm gồm tới ba phần đi cùng nhau ở đây.

npm gồm ba phần: trang web để tìm gói, lệnh npm gõ trong Terminal, và kho lưu các gói

5.1 npm: kho gói và lệnh cài gói

Tài liệu npm cho biết npm gồm ba phần: trang web để tìm gói và quản lý tài khoản, giao diện dòng lệnh npm, cùng với kho npm (registry). Cụm kho npm là nơi lưu trữ các gói trên mạng, khác với kho repo trên GitHub, và npm tự nhận là kho phần mềm lớn nhất thế giới.

Khi bạn gõ npm install <gói>, lệnh này cài gói đó kèm mọi gói mà nó phụ thuộc, rồi mặc định ghi tên gói vào mục dependencies của tệp package.json.

Để xem cài một gói nhỏ kéo theo những gì, Tuấn nhờ trợ lý AI chạy trong hộp cát lệnh cài gói cowsay vốn dùng để vẽ hình con bò nói chữ:

npm install cowsay

Cửa sổ lệnh báo đã thêm 41 gói và kiểm 42 gói với kết quả 0 lỗ hổng trong 2,150 giây. Thời gian 2,150 giây này chỉ là số đo trên mạng và máy của Tuấn lúc thử.

Ba bước từ một câu lệnh ngắn thành cả chục gói nằm trong thư mục của công cụ diễn ra đúng như luồng này.

Lệnh npm install cowsay thêm 41 gói vào dự án, thư mục node_modules nặng 2,4 MB

Trợ lý đếm tiếp thư mục node_modules vừa tạo thì thấy nặng 2,4 MB, còn gõ ls liệt kê ra 29 mục khi không đếm mục ẩn.

Bạn nhớ 29 chỉ là số mục ls nhìn thấy chứ tổng số gói cài vào là 41 gói, nên thấy thư mục gói phình nhanh vài megabyte cũng đừng lo lắng nhé.

5.2 npx: chạy gói mà không cài vào dự án

Vậy npx khác gì npm install? Theo trang lệnh npx, lệnh này dùng để chạy một lệnh từ một gói npm, dù gói đó đang có sẵn trong thư mục của công cụ hay nằm trên kho npm.

Nếu gói chưa có trong thư mục đang đứng, npx sẽ cài gói vào một thư mục trong cache của npm rồi chạy. Chữ cache là thư mục bộ nhớ đệm nơi npm cất gói đã tải để lần sau khỏi tải lại.

Trước khi tải gói mới, npx sẽ in câu hỏi xin phép trừ khi bạn thêm cờ --yes, -y hoặc --no.

Bốn nhịp xử lý khi bạn gõ npx gọi một gói chưa có sẵn trong thư mục làm việc đi theo trình tự này.

Khi gói chưa có trong dự án, npx hỏi bạn đồng ý trước, rồi mới tải gói vào cache npm và chạy lệnh

Trong hộp cát, trợ lý AI của Tuấn chạy thử lệnh gọi cowsay qua npx kèm cờ -y để bỏ qua câu hỏi:

npx -y cowsay "Xin chao"

Do cache đã có cowsay từ bước thử trước nên con bò in < Xin chao > chỉ sau 1,635 giây mà không ghi thêm gì vào package.json. Khi trợ lý làm trống cache rồi chạy lại thì lần đầu cần tải gói nên mất 2,995 giây, và cả hai số đo này đều tính trên máy Tuấn lúc chạy.

Tuấn rất thích npx ở chỗ muốn thử nhanh một công cụ AI thì cứ gọi chạy ngay, khỏi làm nặng thư mục đang đứng.

5.3 Trước khi gõ npx: soát đúng tên gói

Thấy gõ npx nhanh gọn vậy, nhiều bạn hỏi Tuấn là chép lệnh trên mạng vào gõ có rủi ro gì không.

Theo trang rủi ro và cách npm chống, kẻ xấu có thể đăng gói có tên gần giống gói nổi tiếng để người gõ nhầm cài trúng, gọi là kiểu bẫy typosquatting. Phía npm phát hiện và chặn được việc đăng kiểu gói nhái tên này, đồng thời quét mã độc và gỡ gói độc khi có người báo, nhưng tài liệu không nói chặn được hết.

Bốn điều cần rà trước mỗi lần bấm Enter dưới tay bạn được tóm gọn trong danh mục kiểm tra này.

Bốn điều soát trước khi gõ npx: lệnh lấy từ README chính chủ, tên gói đúng từng chữ, đọc câu hỏi, nhớ cờ -y bỏ hỏi

Từ cơ chế của npx và npm install cùng cảnh báo trên, ta suy ra gõ hai lệnh này là tải mã người khác viết từ kho npm về chạy trên máy bạn.

Lời khuyên chung của Tuấn là bạn nên lấy lệnh từ README chính chủ và soát từng chữ trong tên gói. Bạn cũng nhớ đọc kỹ câu hỏi của npx trước khi đồng ý vì cờ -y sẽ bỏ qua câu hỏi đó.

6. package.json và node_modules là gì?

Khi mở thư mục một công cụ tải về, bạn sẽ thấy người ta gọi thư mục có tệp package.json là một dự án. Theo tài liệu Node.js, hễ dự án có package.json thì chạy npm install sẽ cài đủ mọi gói dự án cần vào thư mục node_modules và tự tạo thư mục này nếu chưa có.

Hai cột đối chiếu ở đây giúp bạn phân biệt rõ tệp ghi danh sách với thư mục chứa gói tải về.

Trong một dự án Node.js, package.json ghi danh sách gói cần, còn node_modules chứa các gói npm install tải về

Trong hộp cát, trợ lý AI của Tuấn chạy npm init -y thì tạo ra tệp package.json có "name": "thu", "version": "1.0.0", "main": "hello.js", "license": "ISC".

Sau khi cài thêm cowsay ở mục 5.1, trợ lý xem lại package.json thấy tệp đã tự thêm ba dòng này:

"dependencies": {
  "cowsay": "^1.6.0"
}

Tài liệu npm nêu rõ mặc định lệnh cài sẽ cài cục bộ vào ./node_modules ở ngay gốc dự án. Khi thêm cờ -g thì nó mới cài toàn máy vào /usr/local hoặc nơi cài Node để chạy gói như một lệnh, dù dễ gặp lỗi quyền ở mục 7.3.

Với người mới, Tuấn khuyên bạn cứ để yên hai thứ này cho công cụ tự đọc, không cần mở ra sửa tay dòng nào đâu.

7. Lỗi hay gặp khi công cụ cần Node.js

Lúc gõ lệnh theo README mà màn hình báo lỗi, thường bạn chỉ đụng một trong ba lỗi quen thuộc về thiếu lệnh, phiên bản Node cũ hoặc lỗi quyền cài đặt ở đây.

Ba lỗi hay gặp với Node.js: không thấy lệnh thì cài Node, Node quá cũ thì cài bản mới, và lỗi quyền EACCES

7.1 Báo “command not found: npx” hoặc “node”

Để lấy đúng chữ báo lỗi, trợ lý AI của Tuấn giả lập máy chưa thấy Node bằng cách bỏ thư mục Node khỏi PATH trong hộp cát và chỉ chừa /usr/bin:/bin. Khi trợ lý gõ npx -v và node -v, cửa sổ lệnh dừng ở mã thoát 127 kèm các câu báo lỗi này:

env: npx: No such file or directory
/bin/sh: npx: command not found
zsh:1: command not found: npx
zsh:1: command not found: node

Như tài liệu npm đã giải thích, lệnh npx nằm trong bộ npm và bộ cài Node.js cài kèm luôn npm, nên máy chưa cài Node.js thì không có cả ba lệnh này.

Cách sửa rất gọn là bạn quay lại mục 4 rồi làm theo các bước từ 4.1 tới 4.3 để cài bản LTS. Cài xong bạn mở cửa sổ lệnh mới là chạy được ngay, khỏi tìm chỗ tải riêng npx.

7.2 Báo cần Node.js bản mới hơn

Đôi khi máy bạn đã cài Node từ trước, nhưng công cụ AI mới như Gemini CLI lại ghi yêu cầu Node.js từ bản 20.0.0 trở lên.

Ba hàng con số ở đây giúp bạn hình dung cách đặt bản công cụ đòi cạnh bản đang có trên máy.

So bản cần với bản có: Gemini CLI cần Node.js 20 trở lên, máy Tuấn đang có v24.6.0, bản LTS ngày 28/10/2026 là v24.22.1

Tuấn nói thêm một chi tiết lớp 2 cho bạn nào tò mò, còn người mới bỏ qua được. Theo mục engines trong tài liệu package.json, trường engines dùng để ghi bản Node mà gói chạy được.

Nếu bạn không bật cờ engine-strict thì trường này chỉ là khuyến nghị và chỉ in cảnh báo khi gói được cài làm phụ thuộc.

Máy Tuấn ngày 28/10/2026 có bản v24.6.0 lớn hơn 20 nên suy ra đủ chạy Gemini CLI, dù vẫn cũ hơn bản LTS v24.22.1 hôm đó.

Nếu số bản trên máy bạn thấp hơn mức công cụ đòi, người mới cứ tải bộ cài LTS mới ở mục 4.2 đè lên. Còn người rành dòng lệnh thì dùng nvm ở mục 4.4 để đổi sang bản mới.

7.3 Báo lỗi quyền EACCES khi cài gói toàn máy

Mục nhỏ này cũng thuộc phần lớp 2 dành cho lúc bạn cài gói toàn máy bằng cờ -g, nên người mới chỉ dùng npx có thể bỏ qua luôn.

Theo tài liệu npm, do bộ cài Node.js đặt npm vào thư mục có quyền hạn chế nên lúc bạn chạy lệnh cài gói toàn máy rất dễ vướng lỗi quyền EACCES.

Hai cách tháo gỡ lỗi từ chối quyền cài đặt theo đúng tài liệu hãng nằm ở hai nhánh này.

Gặp lỗi EACCES khi cài gói toàn máy: tài liệu npm khuyên cài lại qua nvm, cách thứ hai là đổi thư mục mặc định

Theo trang sửa lỗi EACCES của tài liệu npm, cách hãng khuyên là cài lại npm bằng trình quản lý phiên bản như nvm ở mục 4.4. Điểm tiện là bạn không cần gỡ bản Node.js hay npm hiện tại trước khi cài.

Cách thứ hai là tự đổi thư mục mặc định của npm sang thư mục riêng, nhưng tài liệu ghi rõ cách thứ hai này không áp dụng cho Microsoft Windows nhé.

8. Ai cần cài Node.js, ai chưa cần?

Hiểu rõ Node.js là gì rồi, bạn chỉ cần cài khi mở README của công cụ AI trên GitHub như Gemini CLI. Đó là lúc họ bảo dùng lệnh tải cả repo về máy rồi gõ npx, npm install hoặc đòi bản Node.js từ 20.0.0 trở lên.

Hai cột tóm gọn ở đây giúp bạn nhìn một lượt là biết máy mình đã cần cài hay chưa.

Cần cài khi README ghi npx, npm install hay đòi bản Node; chưa cần khi công cụ có bộ cài riêng hoặc chỉ dùng trên web

Ngược lại, suy ra từ các điều kiện trên, nhiều công cụ đã có bộ cài app riêng hoặc chỉ mở dùng trên trình duyệt web. Khi công cụ không bắt gõ npx hay npm thì bạn chưa cần cài Node.js làm gì.

Lời khuyên chung của Tuấn là cứ khi nào đụng đúng công cụ đòi npx thì hẵng mở bài này cài bản LTS, tốn vài phút là xong chứ không cần cài đón đầu.


Trước khi làm theo bất kỳ README nào bắt gõ npx, bạn nhớ mở cửa sổ lệnh gõ node -v kiểm tra trước một nhịp. Chỉ cần máy có Node.js là bạn có sẵn luôn cả npm và npx rồi.

Bạn đang tính chạy thử công cụ AI nào mà thấy nó đòi cài Node.js, hay lúc gõ lệnh có gặp dòng báo lỗi nào khác không, cứ bình luận để Tuấn xem cùng nhé?

Người viết

Ảnh đại diện Tuấn

Về Tuấn

Bình luận

Nhắn cho Tuấn ở đây nhé

Tuấn đọc qua rồi mới bấm hiện bình luận nha. Email của bạn được giữ kín, không ai thấy đâu.

Đón bài mới từ Tuấn

Có bài mới trên web là Tuấn đăng lên Facebook TuanismeAI liền, còn video tóm tắt tin AI ngắn gọn thì Tuấn để ở TikTok @tuanisme.2026 cho bạn tiện xem.