Что вызывает различия в установке пакетов npm - PullRequest
1 голос
/ 08 апреля 2019

У меня проблема с тем, что некоторые различия в моих пакетах npm между двумя машинами, использованными для сборки приложения, приводят к тому, что части моего сайта ведут себя по-разному. Я пытаюсь выяснить, в чем причина различий между пакетами, которые устанавливает npm, я проверил, что я использую те же версии nvm, nodejs и npm (и что эта же версия активна с nvm, используя npm list -g --depth=0). Я убедился, что оба имеют одинаковые глобально установленные пакеты и одинаковые версии. Я установил номера версий в package.json так, чтобы они были зафиксированы в соответствии с тем, что я указал (без '^' или '~' в номерах версий). Когда я выполняю npm i в проекте (даже после принудительной очистки кэша npm), я получаю различия между двумя машинами для того, что устанавливает npm:

added 1061 packages from 1024 contributors and audited 26052 packages in 121.826s
found 5 vulnerabilities (2 low, 3 moderate)


added 1110 packages from 1033 contributors and audited 17105 packages in 196.763s
found 6 vulnerabilities (2 low, 3 moderate, 1 high)

Как мне найти:

  1. Что это за отличия (кроме попытки сравнить папку node_modules)
  2. Что вызывает различия во-первых. Насколько я понимаю, использование npm и исправление версий не должно вызывать подобных проблем.

1 Ответ

1 голос
/ 08 апреля 2019

Если npm вызывает разные установки, убедитесь, что вы действительно фиксируете файл package-lock.json и все компьютеры имеют одну и ту же основную версию npm.

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

Когда этот файл блокировки был представлен, разработчики привыкли помещать этот файл в свой gitignore, поскольку он был неожиданным файломnpm, и несколько версий npm используют разные хеши в файле блокировки.

...