Пряжа: процедура перераспределения зависимостей JavaScript с производственным сервером (использование файла "yarn.lock")
Я прочитал документацию по Пряжам, и я знаю, что файл lock
должен быть привязан к VC. См. Это и объясняет на высоком уровне, почему необходим файл блокировки, и это содержит список команд без особого объяснения того, что они на самом деле делают!
Я также прочитал много вопросов о StackOverflow, который спрашивает, должен ли файл lock
быть привязан к VC.
Тем не менее, вся документация и SO-потоки, по-видимому, не учитывают детали, которые я хочу знать, а именно: Какая правильная процедура (правильный набор команд для запуска) для:
- Обновление файла
yarn.lock
когда мне нужно (т. yarn.lock
среде разработки, где я хочу вывести последние второстепенные версии и обновить файл lock
чтобы это отразить) - Для хранения моего файла блокировки в синхронизации с другими разработчиками для обеспечения того, чтобы они разрабатывали/тестировали одни и те же версии зависимостей и
- Для обновления/повторной синхронизации каталога
node_modules
на производственном сервере (т.е. для обеспечения того, чтобы производственный сервер не работал в другой/взломанной версии зависимых пакетов)
Я прошу частично, потому что в прошлом, когда я делал git pull
на сервере, я столкнулся с сообщениями, сообщающими мне, что файл yarn.lock
обновлен независимо от процесса разработки /VC. Насколько мне известно, это никогда не должно допускаться.
Ответы
Ответ 1
-
Честно говоря, это вопрос мнения/предпочтения. Я видел несколько стратегий:
- Использование
yarn upgrade
- Вручную нагнетать версию в
package.json
перед запуском yarn
-
Как упоминал Фабьен: используйте yarn check
-
Вы можете использовать автономные зеркала пряжи, в которых вы берете кеши ваших пакетов 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
.