Возврат к предыдущей версии Package.json при возникновении ошибки зависимости

В процессе обновления приложения Angular, над которым я и мои коллеги работаем, я запустил «npm update», когда хотел запустить «npm install». Это привело меня к кроличьей тропе, потому что, конечно, теперь все мои зависимости - И их зависимости были обновлены в процессе. Оттуда мне пришлось разрешать определенные конфликты, чтобы новые версии работали правильно. Однако это также привело меня к тому, что ошибка в одной из этих зависимостей не позволяет загрузить мое приложение. Согласно репозиторию Angular на github, проблема находится в стадии разработки.

Мой вопрос в том, как я могу вернуться к моей предыдущей настройке в то же время? Я попытался скопировать и вставить файл package.json в том виде, в каком он изначально существовал до моего «обновления npm», удалив папку «узловые модули» и снова запустив «npm install». Но это не решает проблему. Есть ли способ, которым я могу быть уверен, что вернусь к моей предыдущей рабочей настройке?


person Rey    schedule 02.05.2017    source источник


Ответы (1)


Описанный вами процесс должен работать:

  • Получите старую копию вашего package.json из вашего репозитория в том состоянии, в котором вы знаете, что он работал.
  • Запустите rm -rf node_modules, чтобы удалить папку node_modules.
  • Запустите npm install для повторной установки

Если это не сработало, убедитесь, что вы:

  • находятся в правильном каталоге (который должен содержать package.json и node_modules)
  • есть права на очистку папки node_modules (chmod 777 node_modules)
  • package.json, который записан в файловой системе, на самом деле является восстановленным (иногда IDE или Git могут создать странную теневую копию, где вы думаете, что это одно, но на самом деле это другое). Вы можете сказать это, используя cat package.json и проверив вывод
person samanime    schedule 02.05.2017
comment
Когда я попробовал это, я столкнулся с несколькими ошибками компиляции, которых не было, когда я в последний раз зафиксировал рабочую версию репо. Я также только что попытался загрузить весь репозиторий с нашего сервера и снова запустить npm install. Тем не менее возникли ошибки, такие как Инициализаторы не разрешены в окружающих контекстах. Раньше этих ошибок не было. Интересно, это из-за того, что предположительно незначительные обновления (которые должны быть неразрушающими) на самом деле оказались таковыми, и поэтому обновление npm, которое я запустил вчера, по-прежнему несет ответственность за ошибки, которые я сейчас вижу. Нет ли надежного способа сделать это? - person Rey; 02.05.2017
comment
Нет. Если вы очистите свой node_modules, а затем npm install, он будет сброшен до того, что есть у вашего package.json. Если вы все еще получаете ошибки, скорее всего, ваш package.json отсутствует (или что-то добавлено), с которым вы еще не запускали npm install. Иногда это происходит, если что-то добавляется, не забывая добавить --save или --save-dev. - person samanime; 02.05.2017
comment
Итак, вы имеете в виду, что ошибки были бы и раньше, просто npm install не запускался в последнее время - и если за это время что-то было добавлено - эти ошибки никогда не появлялись. Правильный? Итак, теперь мой путь вперед состоит в том, чтобы разобраться с конфликтами, вызывающими ошибки, да? - person Rey; 02.05.2017