Должен ли я изменить distag всех пакетов npm в package.json на «последний»? - PullRequest
1 голос
/ 12 марта 2019

Я строю шаблон для каждого своего внешнего интерфейса, и если я захочу, чтобы я запустил npm install, чтобы все мои зависимости были самой последней версией, я бы изменил для этих целей distag всех пакетов на «последний»?

"@babel/plugin-syntax-dynamic-import": "latest",
        "@babel/plugin-transform-runtime": "^7.3.4",
        "@babel/preset-env": "^7.3.4",
        "babel-eslint": "^10.0.1"

до

"@babel/plugin-syntax-dynamic-import": "latest",
        "@babel/plugin-transform-runtime": "latest",
        "@babel/preset-env": "latest",
        "babel-eslint": "latest"

Ответы [ 2 ]

1 голос
/ 15 марта 2019

В package-lock.json

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

Тогда возникает идея, что вместо использования package.json для разрешения и установки модулей npm будет использовать package-lock.json,Поскольку пакет-блокировка указывает версию, местоположение и хэш целостности для каждого модуля и каждой из его зависимостей, создаваемая им установка будет одинаковой каждый раз.Не имеет значения, на каком устройстве вы находитесь, или когда в будущем вы его установите, он должен каждый раз давать один и тот же результат, что очень полезно.

Итак, если package-lock.json блокируетсяв версии установленных пакетов, в чем проблема с использованием "latest"?

Проблема заключается в том, что ваш package.json не имеет смысла.

  • Ваш package.json не имеетсказать, какая версия фактически установлена, даже не догадываясь.
  • Что, если кто-то переопределит package-lock.json или удалит его.

Это не конец света, ноналичие package.json должно дать нам представление о пакетах, которые мы установили.

Конечно, вы можете увидеть список установленных пакетов с версиями: npm list --depth=0, а также, если вы хотите обновить пакеты, выможете просмотреть список устаревших: npm outdated

Ознакомьтесь с этой статьей: Все, что вы хотели знать о package-lock.json, но боялись спросить .

0 голосов
/ 12 марта 2019

Я думаю, это нормально, когда вы используете последний тег, так как в версии пакетов нет конфликта.

В руководстве пользователя distag они показывают, что:

По умолчанию тег latest используется npm для идентификации текущей версии пакета, а npm install <pkg> (без какого-либо спецификатора @<version> или @<tag>) устанавливает тег latest. Как правило, проекты используют тег latest только для стабильных версий и другие теги для нестабильных версий, таких как предварительные версии.

Так что, если вы собираетесь выпустить стабильную версию, используйте тег latest, который определенно будет истинным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...