Версія Global Angular CLI більше, ніж локальна


353

Під час запуску ng serveя отримую це попередження про те, що моя глобальна версія CLI перевищує мою локальну версію. Я не помічаю жодних проблем із цього попередження, але мені було цікаво, чи повинні дві версії синхронізуватися? Також, чи потрібно мати локальну версію, якщо у вас є глобальна версія?

Попередження:

Ваша глобальна кутова версія CLI (1.1.1) більша, ніж ваша локальна версія (1.0.6). Використовується локальна версія AngI CLI.


43
Хтось може відповісти, для чого нам потрібні і локальні, і глобальні?
Рап

Відповіді:


464

Щоб відповісти на одне із запитань, для роботи інструментів необхідно мати як глобальну, так і локальну установку.

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


немає можливості замість оновлення кліпу, наприклад, я хочу запустити встановлення модулів з моєї існуючої версії cli. або немає способу змусити при виконанні команди використовувати локальний cli не глобальний ??
Мухаммед Яссін ЧАБЛІ

3
Локальна версія CLI використовується за замовчуванням при виконанні команд у каталозі проектів CLI. Це сказано стільки ж у попередженні.
Р. Річардс

але я не знаю, чому це рішення не працює для мене. Що робити, якщо я згадую у своєму пакеті.json як значення мого angular-cli = "^ 1.0.6". що працює, але все ще не розуміючи, що трапиться?
Мухаммед Яссін ЧАБЛІ

1
npm uninstall -g @ angular / cli, npm cache clear --force, npm install @ angular / cli
Hesham Yassin

1
@Doug Це правильно. Ви отримаєте попередження під час виконання цих команд для проекту з нижчою версією CLI, але ви можете проігнорувати його. Усі попередження говорять, що версії різні, і використовуватиметься локальний CLI.
Р. Річардс

152

Ось як я вирішив питання.

Встановіть останній пакет Angular CLI локально

Скопіюйте та запустіть ці команди

ng --version
npm install --save-dev @angular/cli@latest
ng --version

1
Я хотів би додати , що крок 1.5 (якщо хочете) є: rm node_modules/.bin/ng. Працювали чудово.
бретоніка

41

Це працює для мене: оновить локальну версію до останнього

npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install

для перевірки версії

  ng --version

Я перетворив це в стару команду пакетної партії Windoze: CALL npm uninstall --save-dev @ angular / cli CALL npm install --save-dev @ angular / cli @ latest CALL npm install CALL ng --version
Lee H

1
Зробив ваші кроки. Спробував ng serve --openі отримав "Ця версія CLI сумісна лише з кутовою версією 5.0.0 або вище. Будь ласка, перейдіть за посиланням нижче, щоб знайти інструкції щодо оновлення Angular. Angular-update-guide.firebaseapp.com "
Aggie Jon від 87

17
npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest

Потім у своєму пакеті локальних проектів:

rm -rf node_modules dist 
npm install --save-dev @angular/cli@latest
npm i 
ng update @angular/cli 
ng update @angular/core
npm install --save-dev @angular-devkit/build-angular

Став нижче помилки Помилка: Неочікуваний кінець входу JSON Неочікуваний кінець входу JSON Вище описані кроки не вдалося оновити на кутовій версії 6


1
npm install --save-dev @ angular-devkit / build-angular - допоміг оновити @ angular / cli -> зробив angular.json та інші оновлення.
MPV

15
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest

Вашу існуючу конфігурацію можна оновити автоматично, виконавши таку команду:

ng update @angular/cli

або:

npm install

8

У моєму випадку я просто використав цю команду в проект:

ng update @angular/cli

4

Виконайте таку команду: npm install --save-dev @angular/cli@latest

Після запуску вищевказаної команди консоль може спливати повідомлення нижче

Формат конфігурації Angular CLI змінено, і існуючу конфігурацію можна оновити автоматично, виконавши таку команду: ng update @ angular / cli


4

Я не вільно володію англійською мовою

але якщо я розумію проблему, чи локально в проекті ви маєте старішу версію CLI, ніж у всьому світі?

І чи хотіли б ви скористатися цією новітньою версією глобальної мови замість локальної старої?

Якщо так, то для запуску в каталозі проекту достатньо простого методу npm link @angular/cli

докладніше у темі на сторінці: https://docs.npmjs.com/cli/link


2

Спочатку знайдіть глобальну версію angular-cli, запустивши

ng --version

Вищевказаний код покаже, яка версія - це глобальна та локальна версії angular-cli.

Якщо ви хочете, щоб глобальний та локальний кутові кліпи були однаковими, ви можете просто зробити

npm install --save-dev @angular/cli@1.7.4

де 1.7.4 - ваша глобальна кутова версія

Тоді, якщо ви запустите ng serve --openваш код, він повинен працювати.


2

Вам просто потрібно оновити AngularCli

npm install --save-dev @angular/cli@latest

0

Оновити кутовий CLI для робочої області (локальний)

npm install --save -dev @angular/cli@latest

Примітка. Переконайтесь, що встановити глобальну версію за допомогою команди «-g», якщо вона встановлена ​​належним чином.

npm install -g @angular/cli@latest

Запустіть команду Update, щоб отримати список усіх залежностей, необхідних для оновлення

ng update

Далі Виконайте команду оновлення, як показано нижче, для кожного окремого пакета Angular core

ng update @angular/cli @angular/core

Однак мені довелося додатково додати прапорці „–force” та „–allow-dirty”, щоб виправити всі інші очікувані проблеми.

ng update @angular/cli @angular/core --allow-dirty --force


0

Просто роби це

npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force

1
Оскільки на це запитання майже 3 роки і є 14 існуючих відповідей, ваша відповідь була б набагато ціннішою, якби ви пояснили, чому ваша відповідь цінна, що не була охоплена усіма існуючими відповідями.
Девід Бак

-1

npm install --save-dev @ angular-devkit / build-angular - допоміг оновити @ angular / cli -> зробив angular.json та інші оновлення.

Збір встановлених залежностей ... Знайдено 58 залежностей.

 ** Executing migrations for package '@angular/cli' **
            Updating karma configuration
            Updating configuration
            Removing old config file (.angular-cli.json)
            Writing config file (angular.json)
            Some configuration options have been changed, please make sure to update any  npm scripts which you may have modified. DELETE .angular-cli.json CREATE angular.json (4394 bytes) CREATE browserslist (429 bytes) UPDATE karma.conf.js (993 bytes) UPDATE public/tsconfig.spec.json (295 bytes) UPDATE package.json (2618 bytes) UPDATE tsconfig.json (437 bytes) UPDATE tslint.json (3135 bytes) UPDATE public/polyfills.ts (587 bytes) UPDATE public/tsconfig.app.json (199 bytes) npm WARN @angular/core@5.2.9 requires a peer of zone.js@^0.8.4 but none is installed. You must install peer dependencies yourself.

-1

Видаліть поточний кутовий і встановіть конкретну версію.

  1. Перевірте версію

    ng - перевернення

  2. якщо не потрібно, Видаліть версію

    npm видаліть -g @ angular / cli

  3. якщо npm vesrion <5.x

    npm кеш чистий

  4. Перевірте кеш

    npm кеш перевірити

  5. Встановіть конкретну версію

    npm встановити -g @ angular / cli @ major.minor.patch

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.