Каква е разликата между тилда(~) и карета(^) в package.json?
След като обнових до последните стабилни версии на node
и npm
, опитах да инсталирам npm moment --save
. Той запазва записа в package.json
с префикса caret ^
. Преди това префиксът беше с тилда ~
.
- Защо са направени тези промени в
npm
? - Каква е разликата между тилда
~
и карета^
? - Какви са предимствата им пред останалите?
3102
3
Вижте Документи на NPM
~
поправя главните и второстепенните номера. Използва се, когато сте готови да приемете поправки на грешки в зависимостта си, но не искате потенциално несъвместими промени.^
поправя само главния номер. Използва се, когато внимателно следите зависимостите си и сте готови бързо да промените кода си, ако минорната версия ще бъде несъвместима.Освен това
^
не се поддържа от стари версии на npm и трябва да се използва с повишено внимание.Така че,
^
е добро решение по подразбиране, но не е перфектно. Предлагам внимателно да изберете и конфигурирате оператора на semver, който е най-полезен за вас.~
: Доста близко до