что именно делает команда ncu -u? - PullRequest
0 голосов
/ 25 января 2019

Я пытался обновить свой угловой проект в visual studio до определенной версии angular.

Я следовал этому уроку , и я делал вещи немного по-другому, потому что с этим урокомЯ получал последнюю версию angular, и мне нужна именно версия angular 6.

Для этого я запустил npm install -g @angular/cli@6.2.9 вместо учебной (npm install -g npm-check-updates)

После того, как яЯ все-таки выполнил команду ncu -u, как и учебник.

В конце концов я получаю package.json с версией 7, что не то, что я хотел.

Япомните, что ncu означает npm-check-updates, и знаком с -g, который устанавливается по всему миру.Что конкретно делает ncu -u, это обновление?

Так что он игнорирует мою 6-ю версию и в любом случае идет к последней?

Что мне здесь делать?Я хочу увидеть изменения в моем пакете json, но для 6 вместо 7, но эта команда делает это для 7.

Так же, как изображение в учебнике, где вы можете увидеть до и после в командной строке/ PowerShell (я использовал PowerShell в админке, как сказано в руководстве).

Я пытался использовать это https://update.angular.io/

, и это все равно привело меня к версии 7 ... вместо 6.1, котораябыло то, что я выбрал в раскрывающемся списке.Смотрите изображение

enter image description here

и мой package.json сейчас enter image description here

1 Ответ

0 голосов
/ 29 июня 2019

Как указано в пакете ncu описание

ncu -u обновляет ваши зависимости package.json до последних версий, игнорируя указанные версии.

npm-check-updates поддерживает ваши существующие семантические версии политики, т. е. он обновит «express»: «^ 4.0.0» до «express»: "^ 5.0.0".

Он только изменяет ваш файл package.json. Запустите npm install для обновления ваши установленные пакеты и package-lock.json.

После запуска ncu -u может появиться еще одна ошибка, подобная следующей:

Возможно, проблема с деревом зависимостей проекта. это скорее всего не ошибка в приложении Create React, но что-то, что вам нужно исправить локально.

Пакет реагирующих сценариев, предоставляемый приложением Create React, требует зависимость:

"babel-eslint": "10.0.1"

Не пытайтесь установить его вручную: ваш менеджер пакетов делает это автоматически. Тем не менее, другая версия Babel-Eslint была обнаружено выше в дереве:

.. ClientApp \ node_modules \ столпотворение-eslint (версия: 10.0.2)

Для новичка ад зависимости в node.js довольно запутанная вещь, исправляя одну ошибку, вы получаете другую, еще одну и т. Д.

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

Итак, ошибка после выполнения

ncu -u 

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

например. последняя версия пакета act-scripts (на данный момент @ 3.0.1 зависит от babel-eslint @ 10.0.1)

Но самая последняя бабел-эслинт на данный момент уже @ 10.0.2.

Команда ncu -u вставляет в ваш файл package.json последнюю версию babel-eslint@10.0.2.

.

Чтобы это исправить, вам нужно либо выполнить шаги, упомянутые в полном тексте ошибки (который длиннее), либо вручную понизить версию babel-eslint до «10.0.1».

 npm i babel-eslint@10.0.1

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

npm ls [conflicting_package]

npm ls babel-eslint

+-- babel-eslint@10.0.2     - explicit dependency in your package.json on babel-eslint.
`-- react-scripts@3.0.1     - explicit dependency in your package.json on react-scripts.   
  `-- babel-eslint@10.0.1   - implicit dependency with different version
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...