Vấn đềBạn cố gắng chạy một lệnh—có thể là 'Live Server' hoặc định dạng Prettier—và VS Code hiển thị thông báo lỗi 'Command not found'. Đây là một lỗi khá gây bối rối. Tiện ích mở rộng (extension) hiển thị là 'Installed' (Đã cài đặt) trong thanh bên, nhưng trình soạn thảo lại hoạt động như thể nó không tồn tại. Điều này xảy ra do mặc dù VS Code nhận ra tên lệnh từ manifest của extension, nhưng tiến trình chạy ngầm thực tế (Extension Host) đã không kết nối được vào engine.
Tại sao lỗi này xảy raMột số vấn đề có thể làm đứt gãy liên kết giữa một nút bấm và mã nguồn của nó:
- Tiến trình Extension Host bị treo ngầm mà không có thông báo.- Thiếu các phụ thuộc (dependencies), như phiên bản Node.js cụ thể hoặc trình thông dịch Python, ngăn cản việc kích hoạt.- Tệp
package.jsoncủa bạn có lỗi đánh máy trong phầnactivationEvents.- Bộ nhớ đệm (cache) của extension cục bộ bị hỏng sau một bản cập nhật không thành công.- Extension quá mới (hoặc quá cũ) so với phiên bản VS Code hiện tại của bạn.## Các bước khắc phục### 1. Thực hiện Developer ReloadĐừng chỉ đóng và mở lại ứng dụng. 'Developer Reload' nhắm trực tiếp vào Extension Host mà không làm đóng toàn bộ không gian làm việc của bạn. Đây là cách nhanh nhất để giải quyết 90% các lỗi tạm thời. - Nhấn Ctrl+Shift+P (Windows/Linux) hoặc Cmd+Shift+P (macOS).- Nhập
Developer: Reload Windowvà nhấn Enter.Đợi vài giây để các extension khởi tạo. Nếu lệnh hoạt động, có khả năng bạn vừa gặp phải một tiến trình bị treo.
2. Kiểm tra nhật ký (Logs) của Extension HostNếu lỗi vẫn tiếp diễn, VS Code có thể đang cố thông báo chính xác vấn đề là gì. Bạn chỉ cần biết nơi để kiểm tra.
- Mở bảng Output bằng cách vào
View > Output.- Chuyển menu thả xuống (góc trên bên phải của bảng) từ 'Tasks' sang Extension Host.- Tìm các đoạn văn bản màu đỏ. Bạn có thể thấy lỗiModule not foundhoặcActivation failed.Ví dụ, nếu bạn thấy lỗi về việc thiếu tệp thực thigit, bạn sẽ biết rằng extension không bị hỏng—mà là do đường dẫn hệ thống (system path) của bạn.
3. Cài đặt lại để xóa các tệp bị lỗiCác bản cập nhật thỉnh thoảng bị lỗi giữa chừng, để lại các tệp chưa được ghi hoàn tất. Việc cài đặt lại sạch sẽ thường khắc phục được điều này.
- Mở chế độ xem Extensions (
Ctrl+Shift+X).- Tìm extension (ví dụ: 'C# Dev Kit' hoặc 'ESLint') và nhấn Uninstall.- Khởi động lại VS Code. Bước này rất quan trọng để đảm bảo các tệp cũ được giải phóng hoàn toàn.- Tìm kiếm extension đó và nhấn Install.### 4. Xóa bộ nhớ đệm (Cache) của VS CodeVS Code lưu trữ siêu dữ liệu của extension trong thư mụcCachedDatađể tăng tốc độ khởi động. Nếu thư mục này bị mất đồng bộ, nó có thể trỏ đến các tệp không còn tồn tại. Việc xóa nó là an toàn; VS Code sẽ tự động xây dựng lại trong lần khởi chạy tiếp theo. Trên Windows:
rmdir /s /q %APPDATA%\Code\CachedData
Trên macOS/Linux:
rm -rf ~/Library/Application\ Support/Code/CachedData # macOS
rm -rf ~/.config/Code/CachedData # Linux
5. Dành cho nhà phát triển Extension: Kiểm tra ManifestNếu bạn đang xây dựng một extension và các lệnh của chính bạn không hoạt động, hãy kiểm tra tệp package.json. Bạn phải đăng ký các lệnh ở hai nơi riêng biệt.
Đầu tiên, định nghĩa mục nhập giao diện người dùng trong contributes.commands:
"contributes": {
"commands": [
{
"command": "myExtension.helloWorld",
"title": "Xin chào thế giới"
}
]
}
Thứ hai, thông báo cho VS Code khi nào cần tải mã của bạn. Kể từ phiên bản 1.74, VS Code đã tốt hơn trong việc 'lazy loading' (tải chậm), nhưng việc liệt kê rõ ràng lệnh trong activationEvents là lựa chọn an toàn nhất khi gỡ lỗi:
"activationEvents": [
"onCommand:myExtension.helloWorld"
]
Cuối cùng, hãy xác minh rằng trường main của bạn trỏ đến tập lệnh đã biên dịch thực tế (ví dụ: ./out/extension.js) chứ không phải một tệp nguồn bị thiếu.

