Щоб відповісти на одне із запитань, для роботи інструментів необхідно мати як глобальну, так і локальну установку.
Якщо ви спробуєте запустити ng serveпрограму без локальної установки CLI (лише глобальної установки), ви отримаєте наступну помилку.
Ви повинні бути всередині проекту Angli CLI, щоб використовувати команду serve.
Він також надрукує це повідомлення:
Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"
Запустіть цю npmкоманду для локального оновлення CLI та уникайте попередження, яке ви отримуєте.
Інше питання: Схоже, вони не повинні синхронізуватися, але, мабуть, найкраще, щоб вони були, щоб уникнути будь-якої незвичної поведінки з інструментом або будь-яких невідповідностей з кодом, який генерує інструмент.
Для чого нам потрібна як глобальна, так і локальна?
Для запуску нової програми потрібна глобальна установка. ng new <app-name>Команда виконується з використанням глобальної установки CLI. Насправді, якщо ви спробуєте запуститись ng newвсередині структури папок існуючої програми CLI, ви отримаєте цю чудову помилку:
Ви не можете використовувати newкоманду всередині проекту Angular CLI.
Інші команди , які можуть бути запущені з глобальної установки є ng help, ng get/setз --globalопцією ng version, ng docі ng completion.
Локальна установка CLI використовується після побудови програми. Таким чином, коли нові версії CLI доступні, ви можете оновити глобальну установку, а не впливати на локальну установку. Це добре для стабільності проекту. Більшість ngкоманд мають сенс лише з локальною версією, наприклад lint, buildі serveт.д.
Згідно з readme CLI GitHub , для оновлення CLI необхідно оновити глобальний та локальний пакет. Однак, я використовував CLI там, де глобальна та локальна версія досі без проблем змінюються. Якщо я коли-небудь зіткнуться з помилкою, пов’язаною з тим, що глобальна та локальна версії CLI не синхронізуються, я опублікую це тут.