Глобальная угловая версия CLI больше локальной версии


354

При запуске ng serveя получаю это предупреждение о том, что моя глобальная версия CLI больше моей локальной версии. Я не замечаю никаких проблем из этого предупреждения, но мне было интересно, должны ли две версии синхронизироваться? Кроме того, необходимо ли иметь локальную версию, если у вас есть глобальная версия?

Предупреждение:

Ваша глобальная версия Angular CLI (1.1.1) больше вашей локальной версии (1.0.6). Используется локальная версия Angular CLI.


43
Кто-нибудь может ответить, почему нам нужны как локальные, так и глобальные?
Рэп

Ответы:


465

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

Если вы попытаетесь запустить ng serveприложение без локальной установки интерфейса командной строки (только для глобальной установки), вы получите следующую ошибку.

Вы должны быть внутри проекта Angular CLI, чтобы использовать команду serve.

Также будет напечатано это сообщение:

Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"

Выполните эту npmкоманду, чтобы обновить CLI локально и избежать получения предупреждения.

Другой вопрос: похоже, что они не должны быть синхронизированы, но, вероятно, лучше, чтобы они были во избежание какого-либо необычного поведения инструмента или любых несоответствий с кодом, который генерирует инструмент.

Зачем нам нужна как глобальная, так и локальная установка?

Глобальная установка необходима для запуска нового приложения. Команда ng new <app-name>запускается с использованием глобальной установки интерфейса командной строки. Фактически, если вы попытаетесь запустить ng newвнутри структуры папок существующего приложения CLI, вы получите эту прекрасную ошибку:

Вы не можете использовать newкоманду внутри Angular CLI проекта.

Другие команды , которые могут быть запущены из глобальной установки являются ng help, ng get/setс --globalопцией ng version, ng docи ng completion.

Локальная установка интерфейса командной строки используется после сборки приложения. Таким образом, когда будут доступны новые версии CLI, вы можете обновить глобальную установку, не влияя на локальную установку. Это хорошо для стабильности проекта. Большинство ngкоманд имеют смысл только для локальной версии, например lint, buildи serveт. Д.

Согласно readme CLI GitHub , для обновления CLI необходимо обновить глобальный и локальный пакет. Однако я использовал CLI, где глобальная и локальная версии меняются без каких-либо проблем. Если я когда-нибудь столкнусь с ошибкой, связанной с синхронизацией глобальной и локальной версий CLI, я опубликую это здесь.


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

3
Локальная версия CLI используется по умолчанию при запуске команд в каталоге проекта CLI. Об этом говорится и в предупреждении.
Р. Ричардс,

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

1
npm uninstall -g @ angular / cli, очистка кэша npm --force, npm install @ angular / cli
Хешам Яссин,

1
@ Дуг Это правильно. Вы получите предупреждение при запуске этих команд для проекта с более низкой версией CLI, но вы можете игнорировать его. Все предупреждения говорят о том, что версии разные, и будет использоваться локальный интерфейс командной строки.
Р. Ричардс

153

Так я решил проблему.

Установите последний пакет Angular CLI локально

Скопируйте и запустите эти команды

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

1
Я хотел бы добавить , что шаг 1.5 (если хотите) является: rm node_modules/.bin/ng. Работал отлично.
Бретоника

42

Это работает для меня: он будет обновлять локальную версию до последней

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

проверить версию

  ng --version

Я преобразовал это в пакетную команду old-skool Windoze: CALL npm uninstall --save-dev @ angular / cli CALL npm install --save-dev @ angular / cli @ последняя версия CALL npm install CALL ng --version
Lee H

1
Сделал твои шаги. Попробовал ng serve --openи получил "Эта версия CLI совместима только с Angular версии 5.0.0 или выше. Пожалуйста, перейдите по ссылке ниже, чтобы найти инструкции по обновлению Angular. Angular-update-guide.firebaseapp.com "
Aggie Jon of 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 Вышеприведенные шаги помогли из этого поста Не могу обновить angular до версии 6


1
Установка npm --save-dev @ angular-devkit / build-angular - помогла ng update @ 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


3

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

ng --version

Приведенный выше код покажет, какая версия является глобальной и локальной версиями angular-cli.

Если вы хотите, чтобы глобальные и локальные угловые значения были одинаковыми, вы можете просто сделать

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

где 1.7.4 - ваша глобальная версия angular-cli

Тогда, если вы запустите ng serve --openваш код должен работать.


2

Вам просто нужно обновить AngularCli

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

0

Два способа решения этой глобальной и локальной угловой версии CLI.
1. Сохраните специальную версию angular-cli для обеих сред.
2. Перейти к последней версии angular-cli для обеих сред.

1. Конкретная угловая версия

Сначала выясните, какую угловую версию вы хотите сохранить в глобальной и локальной среде.

ng --version

например: здесь мы храним локальную угловую версию CLI 8.3.27

Таким образом, мы должны изменить глобальную версию также на 8.3.27. используйте cmd>

npm install --save-dev @angular/cli@8.3.27 -g

здесь флаг '-g' для установленной глобальной версии angular-cli.

2. Перейти к последней угловой версии для среды CLI.

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

-1

Установка npm --save-dev @ angular-devkit / build-angular - помогла ng update @ 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

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

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

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

npm install -g @angular/cli@latest

Запустите команду «Обновить», чтобы получить список всех зависимостей, которые необходимо обновить

ng update

Далее выполните команду обновления, как показано ниже для каждого отдельного пакета ядра Angular.

ng update @angular/cli @angular/core

Однако мне пришлось дополнительно добавить команды флагов «-force» и «–allow-dirty», чтобы исправить все остальные нерешенные проблемы.

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


-1

Просто делай эти вещи

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

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

-2

Удалите текущий угол и установите конкретную версию.

  1. Проверьте версию

    нг - версия

  2. если не требуется, удалите версию

    npm uninstall -g @ angular / cli

  3. если npm vesrion <5.x

    очистка кеша npm

  4. Проверьте кеш

    проверка кэша npm

  5. Установить конкретную версию

    npm install -g @ angular / cli @ major.minor.patch

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.