Вы должны либо сделать
npm install && npm prune
или
npm upgrade && npm prune
npm install
будет быстрее, чем npm upgrade
, потому что она обновляет только пакеты в node_modules
если package.json
требует более новой версии. npm uprade
, с другой стороны, будет загружать обновления зависимостей, если они доступны, что может включать исправления ошибок. Для ≥npm-5
вы должны использовать npm install
, потому что npm upgrade
будет иметь побочный эффект изменения любого файла package-lock.json
, который не следует изменять, если только вы не являетесь его сопровождающим.
npm prune
необходимо, потому что обновления до package.json
могут удалять зависимости. Если вы не запустили npm prune
, пакеты, установленные предыдущей версией package.json
, останутся в каталоге node_modules
, который не будет там, если вы только что загрузили/клонировали проект и запустили npm install
. Из-за того, как некоторые пакеты условно называют require()
или даже сканируют каталог node_modules
, оставляя пакеты, которые были удалены с package.json
, могут привести к неожиданному поведению.
Привет, Брэндон, спасибо! Я поставлю это в документации. –
Что делать, если пользователь не хочет проверять историю 'package.json', чтобы увидеть, были ли вещи добавлены или удалены, и просто хочет запустить команду, чтобы получить' node_modules' в соответствии с 'package.json'? – binki
Почему вам все равно, проверена ли история package.json? Это выполняет работу и синхронизирует загруженные пакеты в соответствии с package.json. – brandonscript