При запуске npm install --save somepackage
, он обычно добавляет что-то вроде этого в package.json:Make `НПМ установить --save` добавить строгую версию package.json
"dependencies": {
"somepackage": "^2.1.0"
}
Поскольку версия предваряется с кареткой (^), это означает, что если вы позже запустите npm install
, вместо этого он может установить версию 2.3.0. Это может быть нежелательным по довольно очевидным причинам. npm shrinkwrap
полезен, но на самом деле не решает проблему.
Итак, у меня есть несколько вопросов:
- При установке пакета, можно указать, что вы хотите, чтобы установить конкретную версию в package.json (без каретки перед номером версии) ?
- При публикации пакета в npm существует ли способ предотвратить дефолт, включающий каретку перед версией, когда другие разработчики устанавливают ваш пакет?
Если вы хотите сделать это для конкретного пакета, вы можете добавить '--save-exact' в командной строке. Например, 'npm install --save --save-exact somepackage'. – gilly3
Связанный https://www.npmjs.com/package/strict-version –
это только то, что вы можете сохранить только точные версии ваших пакетов верхнего уровня - те, которые указаны в 'package.json', но не будут работать ни для каких пакеты, от которых зависят пакеты верхнего уровня. https://yarnpkg.com/, решая эту проблему с помощью файла 'yarn.lock', чтобы у вас всегда были точные версии всех ваших пакетов. – Kuncevic