Глобальная угловая версия CLI больше локальной версии
При запуске ng serve я получаю это предупреждение о том, что моя глобальная версия CLI больше моей локальной версии. Я не замечаю никаких проблем из этого предупреждения, но мне было интересно, должны ли две версии синхронизироваться? Кроме того, необходимо ли иметь локальную версию, если у вас есть глобальная версия?
Предупреждение:
Ваша глобальная версия Angular CLI (1.1.1) больше вашей локальной версии (1.0.6). Используется локальная версия Angular CLI.
31 ответ
Чтобы ответить на один из вопросов, необходимо, чтобы инструменты работали как на глобальном, так и на локальном уровне.
Если вы попытаетесь запустить 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, я опубликую это здесь.
Вот как я решил проблему.
Скопируйте и запустите эти команды
ng --version
npm install --save-dev @angular/cli@latest
ng --version
Это работает для меня: он будет обновлять локальную версию до последней
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
проверить версию
ng --version
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
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
Существующая конфигурация может быть обновлена автоматически с помощью следующей команды:
ng update @angular/cli
или же:
npm install
В моем случае я просто использовал эту команду в проекте:
ng update @angular/cli
Обновление Angular 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
Запустите следующую команду: npm install --save-dev @angular/cli@latest
После выполнения вышеупомянутой команды консоль может вывести следующее сообщение
Формат конфигурации Angular CLI был изменен, и ваша существующая конфигурация может быть автоматически обновлена с помощью следующей команды: ng update @angular/cli
Два способа решить эту проблему глобальной и локальной версии углового интерфейса командной строки.
1. Сохраните определенную версию angular-cli для обеих сред.
2. Перейти к последней версии angular-cli для обеих сред.
1. Специальная версия angular-cli
Во-первых, выясните, какую версию angular вы хотите сохранить в глобальной и локальной среде.
ng --version
например: здесь мы сохраняем локальный angular CLI версии 8.3.27
Итак, мы должны изменить глобальную версию также на 8.3.27. используйте cmd>
npm install --save-dev @angular/cli@8.3.27 -g
здесь флаг '-g' для установленной глобальной версии angular-cli.
2. Перейти к последней версии angular для среды CLI.
npm install --save-dev @angular/cli@latest -g
npm install --save-dev @angular/cli@latest
Вам просто нужно обновить AngularCli
npm install --save-dev @angular/cli@latest
Я не владею английским
но если я понимаю проблему, локально ли в проекте у вас есть более старая версия CLI, чем глобально?
И вы хотели бы использовать этот глобальный более новый вместо локального более старого?
Если так, очень простой метод достаточно для запуска в каталоге проекта npm link @angular/cli
больше в теме на странице: https://docs.npmjs.com/cli/link
Сначала узнайте глобальную версию angular-cli, запустив
ng --version
Приведенный выше код покажет, какая версия является глобальной и локальной версиями angular-cli.
Если вы хотите, чтобы глобальные и локальные угловые значения были одинаковыми, вы можете просто сделать
npm install --save-dev @angular/cli@1.7.4
где 1.7.4 - ваша глобальная версия angular-cli
Тогда если вы запустите ng serve --open
Ваш код должен работать.
Вот как я это исправил. в
Visual Studio Code
терминал, первая очистка кеша
npm cache clean --force
Потом обновил
cli
ng update @angular/cli
Если какой-либо модуль отсутствует после этого, используйте команду ниже
npm install
Когда вы используете фреймворк Angular в своих проектах, он имеет две разные версии: глобальную версию Angular и локальную версию Angular, устанавливаемую непосредственно в вашем проекте. Именно разница между двумя его версиями объясняет отображение сообщения об ошибке «Глобальная версия Angular CLI больше, чем локальная версия». Вы должны понимать разницу между двумя версиями, чтобы затем решить эту проблему. чтобы решить эту проблему, запустите эту команду:
npm install --save-dev @angular/ [электронная почта защищена]
Есть еще один способ избежать глобальной установки для создания нового приложения. В моем случае я использую Angular 9, но клиенту требуется Angular 8.
# create an empty directories
mkdir angular-8-cli
mkdir my-angular-8-project
# init empty npm project
cd angular-8-cli
npm init -y
# install local angular 8 cli
npm i @angular/cli@8
# go to your angular 8 project
cd ../my-angular-8-project
# use previously installed angular 8 cli to create a new angular 8 project
../angular-8-cli/node_modules/.bin/ng new my-angular-8-project --directory=.
Если вы обновили свою версию Angular, вам необходимо изменить версию
@angular-devkit/build-angular
внутри твоего
package.json
из вашей старой версии в новую обновленную версию сборки angular.
Я обновился до Angular 10, поэтому мне нужно было перейти на https://www.npmjs.com/package/@angular-devkit/build-angular и проверить, какая моя версия соответствует Angular 10.
В моем случае я обнаружил, что версия должна быть
0.1001.7
, поэтому я изменил свою старую версию на эту в моем package.json и запустил
npm --save install
Этого было достаточно.
- нг версия
npm install --save-dev @angular/ [электронная почта защищена]
Закройте командную строку и откройте снова
нг версия
если ваш PowerShell не распознает команду ng, запустите эту команду в вашей powershell:
Set-ExecutionPolicy -scope currentuser -executionpolicy remotesigned
Чтобы устранить ошибку, обновите глобальную или локальную версию, чтобы версии Angular CLI совпадали.
РЕШЕНИЕ 1)npm install @angular/ [email protected]email protected]email protected] --save-dev[ИЛИ] РЕШЕНИЕ 2) Чтобы установить определенную версию Angular CLI локально, npm install @angular/ [ --save-dev
Чтобы установить определенную версию Angular CLI глобально, npm install -g @angular/ [
Если вы получаете ошибку с командами, добавьте свойство ( --legacy-peer-deps).
// устанавливаем обновления npm check
npm i -g npm -check-updates
// Запускаем npm-check-updates
npm -u
// после этого вы должны получить список всех ваших пакетов, которые нужно обновить до последней версии
// Устанавливаем обновленные пакеты по запросу
npm install
Если вы просто хотите отключить это предупреждение, выполните команду
ng config -g cli.warnings.versionMismatch false
Это полезно, потому что иногда вы хотите иметь разные локальные и глобальные версии. Например, у вас может быть последняя версия Angular для вашей глобальной версии, поскольку вы будете использовать ее в новых проектах, но вам придется запускать старый проект в более старой версии Angular.
npm install --save-dev @angular/cli@15.0.2
используйте это для обновления до определенной установленной глобальной версии
Это вызвано тем, что глобальная и локальная угловые версии разные. Чтобы обновить глобальную версию angular, сначала вам нужно запустить следующую команду в командной строке или vs code terminal
npm install --save-dev @angular/cli@latest
После этого, если обнаружены какие-либо уязвимости, выполните следующую команду, чтобы исправить их.
npm audit fix
Если вы хотите запустить angular, используя локальную версию, то есть версию, которую использует проект, используйте для запуска следующий синтаксис:
npx ng serve
Я сделал это, и это сработало
npm ng install /config --save-dev -dev @angular/ @angular-devkit/build-angular -global -g @angular/ [электронная почта защищена][электронная почта защищена]
Я получал это предупреждение, даже если я не в каком-либо угловом проекте,
позже я понял, что по ошибке создал угловой проект напрямую в корневой папке и забыл удалить файл ,package.json
, иpackage-lock.json
Поэтому независимо от того, в какой каталог я перехожу, я получаю это предупреждение.
Если вы хотите узнать, откуда берется ваша локальная версия, выполните приведенную ниже команду.
npm ls @angular/cli --depth=0
Приведенная выше команда напечатает каталог, из которого используется текущая версия angular, и как только вы удалитеnode_modules
предупреждение также исчезло
Это должно решить проблему:
ng update @angular/cli @angular/core
Просто делай эти вещи
npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force
Npm install --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.
Укажите модуль с помощью параметра --module. Например, если основным модулем является app.module.ts, запустите это:
ng g c new-component --module app
Или, если вы находитесь в другом каталоге, тогда
ng g c component-name --module ../
Поместите NouisliderComponent в декларации, а не в импорт.
@NgModule({
declarations: [
AppComponent,
NouisliderComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }`
для получения дополнительной информации, пожалуйста, обратитесь ниже URL: https://github.com/tb/ng2-nouislider/issues/38