Версия одна на все пакеты. Версия хранится в отдельном пакете (можно канонически хранить в `lerna.json`). Пакеты ссылаются друг на друга через * (прямая ссылка на файлы в монорепо). Публикация пакетов в npm registry в основном flow — не происходит.
Есть отдельный pipeline который раз в сутки (в ночь) публикует пакеты под единой версией для обратной совместимости с внешними по отношению к монорепо приложениями (но это вырожденные кейсы).
Если требуется постепенное внедрение какой то версии общего пакета, то публикуется текущая версия пакета (при этом lerna прописывает строгую версию во все зависимые пакеты).
По мере интеграции пакет за пакетом строгая версия заменяется на *, чтобы ссылаться на файлы пакета непосредственно в монорепо.
Итоговый артифакт — это docker image на каждое приложение протегированный единой вресией. Если пакеты того или иного приложения не менялись то переиспользуется старый image.
Да. Спасибо за внимательность. Это урезанная версия оригинального скрипта. Чтобы не перегружать пример.
await в данном случае не нужен, но на работспособность он не влияет. так как await можно ставить и перед не Promise
Так как readFile/writeFile импортируются из namepsace promises никакой ошики нет и здесь. Обертка в promisify не требуется
const { existsSync, promises: { readFile, writeFile } } = require('fs');
Есть отдельный pipeline который раз в сутки (в ночь) публикует пакеты под единой версией для обратной совместимости с внешними по отношению к монорепо приложениями (но это вырожденные кейсы).
Если требуется постепенное внедрение какой то версии общего пакета, то публикуется текущая версия пакета (при этом lerna прописывает строгую версию во все зависимые пакеты).
По мере интеграции пакет за пакетом строгая версия заменяется на *, чтобы ссылаться на файлы пакета непосредственно в монорепо.
Итоговый артифакт — это docker image на каждое приложение протегированный единой вресией. Если пакеты того или иного приложения не менялись то переиспользуется старый image.
await в данном случае не нужен, но на работспособность он не влияет. так как await можно ставить и перед не Promise
Так как readFile/writeFile импортируются из namepsace promises никакой ошики нет и здесь. Обертка в promisify не требуется
const { existsSync, promises: { readFile, writeFile } } = require('fs');