Получил @angular/* version ~9.0.0-next-0 при попытке обновления до Angular Material 8 с помощью ng update. Почему это несоответствие?

Я пытаюсь обновить приложение Angular 7 до Angular 8, используя инструкции здесь. Все прошло хорошо до последнего шага:

нг обновление @ угловой / материал

Это обновило пакеты Angular Material до 8.1.2, но также обновило пакеты @angular/* до довольно странной и нежелательной версии: ~9.0.0-next.0

Это проблематично (мне пришлось избавиться от несущественной зависимости dev, которая требует Angular <= 8), так как я не хочу выходить за пределы версии 8, которая является последней стабильной.

Как я должен заняться этим?

2 ответа

Решение

Проблема в том, что перед запуском ng update @angular/material некоторые из ваших зависимостей уже были на 8.2.0 пока @angular/material была все еще на версии 7.

ng update @angular/material по-видимому, только проверяет, есть ли обновление для @angular/material - не для других зависимостей, которые могут обновляться в пути. Поэтому, когда вы запустили команду, она заметила, что была доступна более новая версия, и приступила к обновлению. Другие зависимости были обновлены так же, как и в версии 8, прежде чем делать обновление (и была доступна версия 9).

Вот почему вы всегда должны следить за тем, чтобы все ваши версии были выровнены перед обновлением.

И просто небольшое наблюдение: 9.0.0-next.0 был выпущен всего за час до того, как вы сделали обновление. Так что, если бы вы сделали это до этого, у вас не было бы ни одной из этих проблем.

Возможное решение этой проблемы - вручную отредактировать package.json и поменяйте зависимости с версией ^9.0.0-next.0 в ^8.2.0

Сообщество, похоже, считает, что это ошибка. Смотрите: https://github.com/angular/angular-cli/issues/14980 (прокрутите вниз).

Другие вопросы по тегам