Щоб відповісти на одне із запитань, для роботи інструментів необхідно мати як глобальну, так і локальну установку.
Якщо ви спробуєте запустити 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 не синхронізуються, я опублікую це тут.