#angular #npm #package.json
Вопрос:
Я работаю над angular 10
приложением. Почему я вижу версию зависимости, package-lock.json
которая отличается от той, которую я ввел в package.json
cmd : npm install
пример :
- пакет.json
«зависимости»: { «подчеркивание»: «^1.12.0«, …. }
- затем я обедаю
npm install
- Упаковка-замок
«подчеркивание»: { «версия»: «1.13.1«, «решено»: «https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz», «целостность»: «sha512-…» },
Почему в package.json это версия 1.12.0, а в другом json-1.13.1 ????
Ответ №1:
Вы можете ознакомиться с полной документацией semver для получения более подробной информации, но когда вы пишете ^1.12.0
, вы фактически пишете диапазон версий, а не одну версию.
Краткая справка:
^1.12.0
=> последняя версия, которая1.x.x
~1.12.0
=> последняя версия, которая1.12.x
1.12.0
=> точно1.12.0
Согласно соглашению semver MAJOR.MINOR.PATCH
, любая версия с одинаковым MAJOR
номером не содержит критических изменений, поэтому вы обычно видите версии пакетов, указанные в ^
диапазоне; вы получаете последние обновления, и ваш код не ломается!
Однако, в отличие package.json
от , package-lock.json
всегда содержит точные версии пакетов, установленных для…ну…заприте их. Вот почему вы package-lock.json
можете показать более высокую версию, чем та, в которой вы указали package.json
.
Конечно, если по какой-либо причине это не нормально и вам нужно придерживаться более конкретной версии, вы можете использовать один из других селекторов.