У меня есть проект, над которым я работаю с двумя разными ноутбуками. Иногда я добавляю дополнительные пакеты в свой проект, поэтому мне приходится использовать npm install <package-name>
(duh). Когда я это делаю, я git push
создаю новые файлы package.json
и package-lock.json
, и когда я переключаю компьютеры, мне нужно git pull
эти изменения, а затем снова запускаю npm install
, чтобы загрузить этот пакет на другой компьютер.
Недавно я заметил и начал заботиться о том, чтобы один ноутбук продолжал добавлять каретки (^
) в начале каждого номера версии пакета. Например:
Для одного компьютера версия # пакета должна выглядеть следующим образом:
"regexpu-core": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"requires": {
"regenerate": "1.4.0",
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
},
Другие версии # набора пакетов выглядят так:
"regexpu-core": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"requires": {
"regenerate": "^1.2.1",
"regjsgen": "^0.2.0",
"regjsparser": "^0.1.4"
}
},
Я понимаю, что каретки (^
) означают, что версия не на 100% точна, но я пытаюсь выяснить ПОЧЕМУ мои разные ноутбуки создают разные форматы для версий пакетов! Я проверил этот вопрос SO , в котором есть отличные объяснения различий между ~
и ^
, но я не нашел ничего, объясняющего, почему npm
иногда добавляет и иногда удаляет каретки (^
) в целом. Я также посмотрел на эту проблему с npm на Github , которая рекомендовала посмотреть npm
настройки конфигурации, но оба моих ноутбука имеют одинаковые настройки:
npm config get save
= true
(оба компьютера)
npm config get save-prefix
= ^
(оба компьютера)
npm config get save-exact
= false
(оба компьютера)
На одном ноутбуке была установлена npm
версия 5.6.0
, но я только что обновил его до 6.5.0
. На другом компьютере была установлена версия 6.4.1
, но я также обновил ее до 6.5.0
. Я попытался запустить npm install
в своем проекте на обоих компьютерах, но все же я обнаружил, что один компьютер всегда удаляет ^
, а другой всегда добавляет ^
.
Пожалуйста, дайте мне знать, если что-то мне не хватает. Спасибо за любую помощь!