Пряжа: процедура перераспределения зависимостей JavaScript с производственным сервером (использование файла "yarn.lock")

Я прочитал документацию по Пряжам, и я знаю, что файл lock должен быть привязан к VC. См. Это и объясняет на высоком уровне, почему необходим файл блокировки, и это содержит список команд без особого объяснения того, что они на самом деле делают!

Я также прочитал много вопросов о StackOverflow, который спрашивает, должен ли файл lock быть привязан к VC.

Тем не менее, вся документация и SO-потоки, по-видимому, не учитывают детали, которые я хочу знать, а именно: Какая правильная процедура (правильный набор команд для запуска) для:

  1. Обновление файла yarn.lock когда мне нужно (т. yarn.lock среде разработки, где я хочу вывести последние второстепенные версии и обновить файл lock чтобы это отразить)
  2. Для хранения моего файла блокировки в синхронизации с другими разработчиками для обеспечения того, чтобы они разрабатывали/тестировали одни и те же версии зависимостей и
  3. Для обновления/повторной синхронизации каталога node_modules на производственном сервере (т.е. для обеспечения того, чтобы производственный сервер не работал в другой/взломанной версии зависимых пакетов)

Я прошу частично, потому что в прошлом, когда я делал git pull на сервере, я столкнулся с сообщениями, сообщающими мне, что файл yarn.lock обновлен независимо от процесса разработки /VC. Насколько мне известно, это никогда не должно допускаться.

Ответ 1

  1. Честно говоря, это вопрос мнения/предпочтения. Я видел несколько стратегий:

    • Использование yarn upgrade
    • Вручную нагнетать версию в package.json перед запуском yarn
  2. Как упоминал Фабьен: используйте yarn check

  3. Вы можете использовать автономные зеркала пряжи, в которых вы берете кеши ваших пакетов npm в управление версиями. (См. Эту статью)

    Кроме того, при использовании yarn --offline существует множество yarn --offline:

    • Сборка происходит быстрее, потому что вам не нужно извлекать пакеты из реестра npm.
    • Ваши сборки не сработают, если у вас нет правильных зависимостей.

Ответ 2

следующая информация основана на том, что мы ежедневно используем в Orange, это может быть не единственная правда.

1) Обновление yarn.lock

yarn upgrade [package | [email protected] | [email protected] | @scope/]... [--ignore-engines] [--pattern]

Эта команда обновляет зависимости до последней версии на основе диапазона версии, указанного в файле package.json. Файл с yarn.lock также будет воссоздан.

источник: https://yarnpkg.com/ru/docs/cli/upgrade

2) Зависимость между разработчиками

Я предлагаю вам создать скрипт, который будет проверять текущую "рекомендуемую" версию, с помощью:

yarn check

Проверяет, что версии зависимостей пакета в текущих проектах package.json соответствуют тем, которые находятся в файле блокировки пряжи.

Источник: https://yarnpkg.com/ru/docs/cli/check

3) Обновление серверной продукции

То же, что и 2), используя скрипт git hook, должен помочь вам yarn check, правильна ли версия package.json, если не запускать yarn update.