Để trả lời một trong những câu hỏi, cần phải có cả cài đặt toàn cầu và cục bộ để các công cụ hoạt động.
Nếu bạn cố chạy ng serve
trên một ứng dụng mà không cài đặt cục bộ CLI (chỉ cài đặt toàn cầu), bạn sẽ gặp lỗi sau.
Bạn phải ở trong một dự án Angular CLI để sử dụng lệnh phục vụ.
Nó cũng sẽ in thông báo này:
Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"
Chạy npm
lệnh đó để cập nhật CLI cục bộ và tránh cảnh báo mà bạn đang nhận.
Câu hỏi khác: Có vẻ như họ không cần phải đồng bộ hóa, nhưng có lẽ tốt nhất là họ nên tránh mọi hành vi bất thường với công cụ hoặc bất kỳ sự không nhất quán nào với mã mà công cụ tạo ra.
Tại sao chúng ta cần cả cài đặt toàn cầu và cài đặt cục bộ?
Cài đặt toàn cầu là cần thiết để bắt đầu một ứng dụng mới. Các ng new <app-name>
lệnh được chạy bằng cách sử dụng cài đặt toàn cầu của CLI. Trong thực tế, nếu bạn cố chạy ng new
trong cấu trúc thư mục của ứng dụng CLI hiện có, bạn sẽ gặp phải lỗi đáng yêu này:
Bạn không thể sử dụng new
lệnh bên trong dự án Angular CLI.
Lệnh khác có thể được chạy từ toàn cầu cài đặt được ng help
, ng get/set
với các --global
tùy chọn, ng version
, ng doc
, và ng completion
.
Cài đặt cục bộ của CLI được sử dụng sau khi ứng dụng được xây dựng. Bằng cách này, khi có phiên bản mới của CLI, bạn có thể cập nhật cài đặt toàn cầu của mình và không ảnh hưởng đến cài đặt cục bộ. Điều này là tốt cho sự ổn định của một dự án. Hầu hết ng
các lệnh chỉ có ý nghĩa với phiên bản cục bộ, như lint
, build
và serve
, v.v.
Theo CLI GitHub readme , để cập nhật CLI, bạn phải cập nhật gói toàn cầu và cục bộ. Tuy nhiên, tôi đã sử dụng CLI trong đó phiên bản toàn cầu và địa phương khác nhau mà không gặp rắc rối nào cho đến nay. Nếu tôi gặp phải một lỗi liên quan đến việc không đồng bộ các phiên bản CLI toàn cầu và cục bộ, tôi sẽ đăng nó ở đây.