Вопросы с тегами [monorepo]

0

голосов
0

ответ
2

Просмотры

NPM-ссылка на стороне проекта на пакеты monorepo в

Я пытаюсь использовать JS monorepo другого пользователя Github в проекте сидит в одной и той же корневой папке. / Проект / редактор monorepo / проект / мой-проект, который я попытался с помощью CD / проект / моего-проект НОЙ-ссылка ../ редактора monorepo / пакетов / package1 ... Хотя это не дало никаких ошибок в консоли, мой-проект Сейчас завершается с некоторыми ошибками в одном из Lib папки monorepo пакета. Monorepo проект является ORY-редактор, и я не вижу, как использовать версию Github в моем проекте, так как версия NPM устарела.
steakoverflow
1

голосов
1

ответ
157

Просмотры

Monorepo with Expo and Multiple Entry Points

У меня есть два Expo (React Native) приложений, что доля большую часть своего кода и уже в производстве. Мы пытаемся, чтобы переместить их в структуру каталогов monorepo следующим образом: lerna.json package.json пакеты / мобильного 1 / app.json index.js package.json мобильно-2 / app.json index.js package.json Подвижная общий / SRC / ... фактический код приложения ... index.js package.json пути наша установка работает в том, что мы экспортируем функцию, которая запускает приложение с мобильного общим / index.js и подвижной {1,2} /index.js должны вызвать эту функцию с параметрами инициализации, специфичные для каждого из них. Проблема с этой установкой является то, что мобильным общим используют реагировать-нативные и экспозиционные зависимости, которые также требует ехра, чтобы начать Реагировать Native упаковщика, который вызывает определенные проблемы во время сборки. Мы попытались следующее: Добавление мобильных устройств общего, экспоненту и реагировать-родной для зависимостей в подвижной {1,2} /package.json и делать Lerna самозагрузки. Это позволяет запускать аварии упаковщика, но мобильные приложения при строительстве, так как они находят дубликаты зависимостей. Мы никогда не получали пряжу рабочее пространство для работы, либо. Lerna самонастройки --hoist также не работает. NPM ссылка также производится проблемы во время сборки с повторяющимися зависимостями. Мы действительно хотим, чтобы перейти к такого рода структуры, потому что наша предыдущая структура не легко позволяет запускать и приложения бок о бок, и она становится все более необходимым. Спасибо за помощь нам! 2} /package.json и делать Lerna самозагрузки. Это позволяет запускать аварии упаковщика, но мобильные приложения при строительстве, так как они находят дубликаты зависимостей. Мы никогда не получали пряжу рабочее пространство для работы, либо. Lerna самонастройки --hoist также не работает. NPM ссылка также производится проблемы во время сборки с повторяющимися зависимостями. Мы действительно хотим, чтобы перейти к такого рода структуры, потому что наша предыдущая структура не легко позволяет запускать и приложения бок о бок, и она становится все более необходимым. Спасибо за помощь нам! 2} /package.json и делать Lerna самозагрузки. Это позволяет запускать аварии упаковщика, но мобильные приложения при строительстве, так как они находят дубликаты зависимостей. Мы никогда не получали пряжу рабочее пространство для работы, либо. Lerna самонастройки --hoist также не работает. NPM ссылка также производится проблемы во время сборки с повторяющимися зависимостями. Мы действительно хотим, чтобы перейти к такого рода структуры, потому что наша предыдущая структура не легко позволяет запускать и приложения бок о бок, и она становится все более необходимым. Спасибо за помощь нам! Мы действительно хотим, чтобы перейти к такого рода структуры, потому что наша предыдущая структура не легко позволяет запускать и приложения бок о бок, и она становится все более необходимым. Спасибо за помощь нам! Мы действительно хотим, чтобы перейти к такого рода структуры, потому что наша предыдущая структура не легко позволяет запускать и приложения бок о бок, и она становится все более необходимым. Спасибо за помощь нам!
Sebastian Garrido
1

голосов
0

ответ
10

Просмотры

Положитесь на упаковке рабочего пространства от филиала в package.json?

Скажем, в моем package.json я полагаюсь на соседнюю ветке, объявив в своих зависимости: реагировать-администратор ":„ marmelab / реагировать-администратор # следующие“Это хранилище имеет рабочие пространства (локальные пакеты, так сказать), например: RA- щ-materialui Что я могу добавить к зависимостям моей package.json зависит от ра-Ui-materialui в той же соседней ветке?
1

голосов
1

ответ
82

Просмотры

Строительство monorepo столпотворение-transpiled приложение JS узел с зависимостями

Я работаю над проектом, который размещен в monorepo. В целях упрощения допустим, что внутри есть три понятных пакетов: сервер, клиент WebAPP и библиотека. Структура каталога будет что-то вроде следующего: пакеты сервера ЦСИ WebApp библиотека ЦСИ заместитель проекта ЦСИ Все пакеты используют тип обозначения потока, используйте несколько> ES5 функции и, по этой причине, пройти через Бабель transpilation. Основное различие заключается в том, что transpilation пакета WebAPP осуществляется через WebPack, в то время как сервер использует задачу глотка, который запускает скрипт transpilation через пакет Глотка-Бабель. Библиотека transpiled автоматически, когда веб построен. Теперь проблема у меня есть, что сервер для создания, столпотворение требуется библиотека будет построена первым и его пакет. JSON, чтобы указать его (встроенный) главный исходный файл JS, так могут быть включены его transpiled артефакты. Как вы можете себе представить, это быстро стало бы проблематичным, если проект должны были содержать несколько библиотек, которые активно разрабатываются (что он делает), так как все потребует строительства, в том числе и любых зависимых пакетов (например, сервер в этом простом случае). В попытке преодолеть эту досаду, я сначала думал использовать Webpack построить сервер, который будет заботиться о числе независимо от зависимостей требует в пучок, но я столкнулся с проблемами, как, видимо WebPack не предназначены для использования на узле JS Приложения. Какие стратегии для построения приложения узла JS, требующее Вавилонского transpilation, таким образом, что применение» Источник s файлы, а также любая зависимость построены прозрачно и содержатся в одном каталоге вывода? Приложение A Упрощенная задача глотка для transpilation сценариев, так как используется сервером. Возвращение глотком .src ([. `SRC / ** / * js`], {allowEmpty: истинный}) .pipe (столпотворение ({sourceMap: истинный})) .pipe (gulp.dest ( 'расстояние')); Как можно видеть выше, собственные исходные файлы только сервера, включаются в задание. Если ЦСИ должны были быть изменен также включать библиотеку, задача будет испускать зависимости артефакты в собственном каталоге вывода сервера и любое требует утверждения ( „библиотеки“) внутри будут пытаться обнаружить встроенные артефакты в пакетах / библиотеке и не пакеты / сервер / расстояние, что приводит к ошибкам импорта. {AllowEmpty: истинно}) .pipe (Babel ({sourceMap: истинно})) .pipe (gulp.dest ( 'расстояние')); Как можно видеть выше, собственные исходные файлы только сервера, включаются в задание. Если ЦСИ должны были быть изменен также включать библиотеку, задача будет испускать зависимости артефакты в собственном каталоге вывода сервера и любое требует утверждения ( „библиотеки“) внутри будут пытаться обнаружить встроенные артефакты в пакетах / библиотеке и не пакеты / сервер / расстояние, что приводит к ошибкам импорта. {AllowEmpty: истинно}) .pipe (Babel ({sourceMap: истинно})) .pipe (gulp.dest ( 'расстояние')); Как можно видеть выше, собственные исходные файлы только сервера, включаются в задание. Если ЦСИ должны были быть изменен также включать библиотеку, задача будет испускать зависимости артефакты в собственном каталоге вывода сервера и любое требует утверждения ( „библиотеки“) внутри будут пытаться обнаружить встроенные артефакты в пакетах / библиотеке и не пакеты / сервер / расстояние, что приводит к ошибкам импорта.
miguelg
1

голосов
1

ответ
172

Просмотры

Использование Peer зависимостей с локальным (файлом: ../ некоторого Пба) зависимости

У меня есть monorepo, который имеет много микро-услуг в нем. Есть некоторые библиотеки типа функции / классы, которые я хочу, чтобы сделать доступными для любого микро-сервиса, который нуждается в этом. Однако, если этот пакет библиотеки объявляет пэр зависимость, равноправная зависимость не обнаружена при выполнении коды внутри вещи, которая зависит от библиотеки. Рассмотрим структуру репо: Lib какой-библиотеки (peerDepends на обув) index.js (требуется Foo) node_modules будут пустыми услуги некоторые-сервис (в зависимости от обув, и некоторые из-библиотека) index.js (требует-библиотеки) node_modules будет есть: Foo некоторая библиотека будет символической ссылкой на ../../lib/some-library При запуске узел услуга / некотором-сервис / index.js, вы получите сообщение об ошибке «не удается найти модуль„Foo“», исходящая из Lib / некоторые-библиотеки / index.js. Предположительно, это происходит потому, что узел только смотрит на Lib / некоторую библиотека / node_modules и любая папка node_modules, которая находится в каталоге предка. Но поскольку этот код был запущен из услуг / какой-службы (в качестве рабочего каталога), а также из-за линк услуг / некоторые обслуживание / node_modules, я бы ожидало, что это работает. Вот репо вы можете легко клонировать, чтобы увидеть проблему: https://github.com/jthomerson/example-local-dependency-problem мерзавец клон [email protected]: jthomerson / пример-местные зависимости-problem.git пример кд -local-зависимости проблема CD услуги / некоторые обслуживание НОЙ установки узла index.js Я вижу только два решения: не используйте peerDependencies внутри библиотек Установите каждую пэру зависимость в корне проекта ради местного развития и тестирования ,
1

голосов
2

ответ
595

Просмотры

Могу ли я иметь несколько babel.config.js в виде monorepo?

У меня есть monorepo со структурой, как показано ниже babel.config.js пакетов / | --- мобильные / | ---- package.json | ---- SRC / index.js | --- настольный / | --- -package.json | ---- SRC / index.js | --- сервер / | ---- package.json | ---- SRC / index.js Так что моя конфигурация Бабель для мобильных и настольных пакетов одинаков, в то время как для конфигурации serverpackage отличается. Теперь, как я могу быть, что конфигурация сделана? Одно из решений, что я могу думать о том, что иметь babel.config.js в корне monorepo, которые будут иметь конфигурации для мобильных и настольных пакетов и отдельную конфигурацию для пакета сервера в babel.config.js на уровне пакета сервера , Я не уверен, мы можем даже иметь несколько babel.config.js.
Ajay Poshak
1

голосов
1

ответ
0

Просмотры

Гранулированный доступ к каталогам внутри monorepo

Я читал о преимуществах monorepos, но до сих пор не нашли смягчение для следующей задачи: Допустим, организация имеет monorepo для веб-приложения клиент / сервер. Они нанимают подрядчика на работы по проектированию некоторой части клиента. Как они могут дать доступ подрядчика только к соответствующему коду клиента? Даже разреженные извлечения не являются тривиальными.
Dan Dascalescu
1

голосов
1

ответ
293

Просмотры

Как я могу исправить VSCode Импорт Предложения Путь в Lerna Monorepo?

VSCode делает большую работу с импортом autosuggesting, однако внутри (Лерны) monorepo это предполагает только относительные пути из одного пакета в другой, например: пример импорта из»../../../@scope/example/lib/ index.html»Мне нужно ссылаться на другие пакеты, используя их имена пакетов: пример импорта из„@ области видимости / например“; Мой jsconfig.json, который находится в корне моего monorepo: { "compilerOptions": { "цель": "ES6", "JSX": "реагировать"}, "включают": [ "** / SRC / ** / * .js "], "исключающие": [ "** / node_modules / *", "** / расстояние / *", "** / покрытия / *", "** / демо / *"," ** / Библиотека / *»,„** / государственный / *“]} есть ли способ, чтобы получить правильное автодополнение в VSCode? Замечания:
Undistraction
1

голосов
1

ответ
768

Просмотры

Следите за изменениями в пакете ссылка НПМ строится с WebPack

У меня есть следующая структура каталогов: приложение | | __ компонент библиотека | | __Src | | __ приложение | | __Src Я использовал Lerna связать компонент-библиотеку в приложении. На минуту я ссылки на скомпилированный выходе компонента-библиотеки. Я хочу, чтобы как-то слушать изменения в компоненте библиотеки папки, которая будет вызывать перекомпиляции. Я бы нужен использовать глоток?
dagda1
1

голосов
1

ответ
92

Просмотры

Угловая MonoRepo Nx - использование библиотеки в приложении

Ситуация: Я совершенно новый для Угловых и хочу создать Угловое рабочее место с несколькими приложениями и библиотеками. Я последовал за учебник по https://blog.angularindepth.com/why-angular-teams-fail-at-code-sharing-and-how-this-monorepo-approach-will-fix-it-7a29e366a1f9 создать угловую рабочее пространство с Nx в виде MonoRepo. Я создал приложение и LIB следующие шаги, представленные в учебнике. Так что я приложение называется первым-приложением и Lib называется первым Пбом. В первом Пб У меня есть компонент первого Пб-компонента. Я хочу использовать компонент или лучший саму библиотеку, как это в моем первом app.html: Это мое первое приложение, или я импортировал первый Пб в app.module.ts и добавил первый Пб-модуль для импорта. Проблема: Я хочу, чтобы использовать созданную библиотеку в моем созданном приложении и что» S в точке, где я в настоящее время не в состоянии. Я получаю ошибку о том, «„первый Пб-компонент“не является известным элементом». Сайт Nx (https://nrwl.io/nx/guide-nx-workspace) говорится, что: ... клиенты библиотеки находятся в одном хранилище, поэтому не требуется никакой упаковки и публикации шаг. Если не требуется никакой упаковки, как я могу использовать мои общие компоненты / проекты (библиотеки)? Мой вопрос: Как я могу импортировать и использовать (компонент) библиотеки в приложении?
the_chimp
0

голосов
0

ответ
3

Просмотры

Is there a way to do multi-repo git for single directory/project?

Я была поставлена ​​задача пытается портировать большое хранилище CVS скриптов для GIT. Все скрипты находятся в одном каталоге (возможно подкаталоги) в CVS скриптов / и т.д. / a1.pl скрипты / и т.д. / a2.pl ... скрипты / и т.д. / aN.pl скрипты / и т.д. / b1.pl скрипты / и т.д. / c1 .pl скрипты / и т.д. / MyApp / myapp1.pl в CVS мире, все они получают проверили в окончательное место постановки с помощью «кд / постановка /; резюме совместно сценариев» мне сказали, что сценарии должны быть в разных РЕПО в GIT: «а» репо, «б» репо, репо «MyApp»; на основе примеров имен файлов. Насколько я знаю, GIT, это означает, что, если я проверить код из в «/ ступенчатой» директорию, они будут затем расщепляется репо: /stagingGIT/A/etc/a1.pl / stagingGIT / B / и т.д. / b1. пл /stagingGIT/MyApp/etc/myapp.pl Вопрос: могу ли я - и если да, то как, - сделать это в некотором смысле, что позже позволит кому-то, чтобы проверить их из GIT в кумулятивный одном «/ постановка / и т.д.» каталог, как CVS monorepo сделал; минуя Репо имени поддиректории: /stagingGIT/etc/a1.pl /stagingGIT/etc/b1.pl /stagingGIT/etc/myapp.pl Просто чтобы быть ясно - файлы в постановке только для чтения, они не будут быть изменен и возвращен обратно в систему контроля версий.
DVK
1

голосов
1

ответ
167

Просмотры

Почему несвязанная история появляется при запуске «ублюдка войти -m --follow» на файл после слияния в несколько РЕПО в один монолитный хранилище?

У меня есть несколько различных GIT сделок РЕПО которые я хотел бы, чтобы объединить в одну монолитную репо, сохраняя при этом свою историю. Я нашел способ сделать это, но я немного запутался о том, что мерзавец журнал показывает мне для одной истории файлов. Вот вывод, что у меня было: мерзавец войти --oneline выход из комбинированного репо ------- (голова -> мастер) Merge repoC в моно репо ------- Слияние repoB в моно репо --- ---- Слияние repoA в моно репо ------- ------- начальной фиксации Добавить README в repoC ------- Добавить README в repoB ------- Добавить README в repoA мерзавец журнал --oneline repoA / README.md выходе из комбинированного репо ------- Слияние repoA в Git репо моно войти --oneline -m --follow repoA / README.md выход из комбинированного репо ---- --- (из -------) (РУКОВОДИТЕЛЬ -> мастер) Слияние repoC в моно репо ------- (от -------) Слияние repoB в моно репо ------- (от -------) Слияние repoA в моно Сделки рЕПО ------- (из -------) Слияние repoA в моно репо ------- первоначальный коммит ------- Добавить README в repoC ------- Добавить README в repoB ------- Добавить README в repoA Начиная со все отдельной операциями рЕПО как пучки я делаю следующее, чтобы создать свою монолитность репо: для Repos A / B / C мерзавцы инициализация эха «репо»> README.md мерзавец добавить. мерзавец совершить -m «Добавить README репо» мерзавец расслоением создать ../repo{A,B,C}.bundle --all Создание объединенного мерзавца репо инициализации эхо «начальный»> README.md мерзавец добавить. мерзавец совершают -m 'первоначального фиксации' Для каждого MKDIR репо репо {A, B, C}, мерзавец выборки ../repo{A,B,C}. расслоение мастера-мерзавец объединить --allow-неродственного-историй -s наших --no фиксации FETCH_HEAD мерзавец чтение дерево prefix = -u repoA FETCH_HEAD мерзавец фиксация -m "Объединение репо {A, B, C} в моно репо" Почему я получаю никакого отношения мерзавец истории коммитов для конкретных файлов при работе с '-m --follow? Я ожидаю увидеть только коммиты, которые относятся к файлу. ОБНОВЛЕНО (пытаясь журналы для файлов с разными именами и содержимым): мерзавец журнала -m --follow --oneline repoB / sue.md` ------- (из -------) (ГОЛОВЫ -> мастер) Слияние репо C в моно repo` ------- (от -------) Слияние репо B в моно repo` ------- (от -------) Слияние репо B в моно repo` ? Я ожидаю увидеть только коммиты, которые относятся к файлу. ОБНОВЛЕНО (пытаясь журналы для файлов с разными именами и содержимым): мерзавец журнала -m --follow --oneline repoB / sue.md` ------- (из -------) (ГОЛОВЫ -> мастер) Слияние репо C в моно repo` ------- (от -------) Слияние репо B в моно repo` ------- (от -------) Слияние репо B в моно repo` ? Я ожидаю увидеть только коммиты, которые относятся к файлу. ОБНОВЛЕНО (пытаясь журналы для файлов с разными именами и содержимым): мерзавец журнала -m --follow --oneline repoB / sue.md` ------- (из -------) (ГОЛОВЫ -> мастер) Слияние репо C в моно repo` ------- (от -------) Слияние репо B в моно repo` ------- (от -------) Слияние репо B в моно repo`
Nida
1

голосов
1

ответ
661

Просмотры

How to use Storybook components (and Lerna) in an external project done with Next.js?

Я только что создал мой Storybook библиотеку компонентов (ES6 и т.д.). Она построена как проект Lerna (все компоненты изолированы в пакетах / папке). Тем не менее, это частный репо без реальной публиковать функцию так, я думаю, что Lerna не будет работать с частным (бесплатно) счета. Я отодвинул сборник рассказов репо на мой Bitbucket, как это. Теперь я хотел бы использовать свой сборник рассказов библиотеку компонентов из основного приложения, которое является отдельным репо (на Bitbucket) построить на Next.js. Я пытался импортировать отдельные компоненты сборника рассказов следующим образом импорта MyComponent из «сборника рассказов-репо / пакеты / My-компонент / мой-компонент»; но это, очевидно, не работает, возвращая эту ошибку: Модуль синтаксического анализа не удалось: Неожиданный маркер (8: 9) Вы, возможно, потребуется соответствующий загрузчик для обработки этого типа файлов. Это, потому что MyComponent это JSX файл. Я надеялся, что Next.js к transpile импортированных модулей, но это не так. Мои вопросы: Мои внутренности говорят импорт целого сборника рассказов как мерзавец + SSH: //[email protected]/myusername/storybook-repo.git из package.json не является хорошей идеей. Любые лучшие решения? Верно ли, что Lerna работает только для общественных / Pro РЕПО, где я могу опубликовать мои пакеты? Почему Next.js не transpiling импортированных модулей JSX? На данный момент, как работает этот процесс? Должен ли я transpile компоненты сборника рассказов из удаленного репозитория или сделать работу с моего основного приложения? Спасибо Любые лучшие решения? Верно ли, что Lerna работает только для общественных / Pro РЕПО, где я могу опубликовать мои пакеты? Почему Next.js не transpiling импортированных модулей JSX? На данный момент, как работает этот процесс? Должен ли я transpile компоненты сборника рассказов из удаленного репозитория или сделать работу с моего основного приложения? Спасибо Любые лучшие решения? Верно ли, что Lerna работает только для общественных / Pro РЕПО, где я могу опубликовать мои пакеты? Почему Next.js не transpiling импортированных модулей JSX? На данный момент, как работает этот процесс? Должен ли я transpile компоненты сборника рассказов из удаленного репозитория или сделать работу с моего основного приложения? Спасибо
Mauro
1

голосов
1

ответ
457

Просмотры

Как использовать ссылки машинописи и режим построения компилировать моно репо к бессерверной пачке?

Машинопись недавно представила новую функцию для работы с monorepos: ссылки. По задающим ссылкам вы можете создать все взаимозависимые пакеты с использованием TSC -b (смотрите также этот блог) Это кажется идеально подходит для использования с большим моно репо, где некоторые пакеты услуги без серверов. Эти услуги, как правило, зависят от одного или нескольких пакетов в monorepo. Я создал пример здесь: https://github.com/tommedema/serverless-mono-example Хотя здание хорошо работает с TSC -b, проблема заключается в том, что структура бессерверной должна загрузить один артефакт .zip (для АМСА в моем случае). При создании службы бессерверной, как в этом примере, будут поставляться в комплекте только скомпилированные файлы ближайших исходных файлов. Как бы один использовать ссылки машинописи оснащены для использования с бессерверными моно РЕПО?
Tom
1

голосов
2

ответ
741

Просмотры

Существуют ли какие-либо преимущества использования Lerna с пряжей рабочими пространствами?

Мы находимся в процессе перехода нашего monorepo использовать Lerna. Lerna поддерживает как НПЙ и пряжу и, кроме того позволяет конфигурировать использование с пряжей рабочих пространствами. Пока неясно, мне ли Lerna с пряжей рабочих областей имеет какие-либо явные преимущества в Лерны с НПМ. Многие сообщения утверждают, что Lerna делает более или менее то же самое, что пряжа рабочих пространств из коробки. Существуют ли какие-либо преимущества использования Lerna с пряжей рабочими пространствами противостоящих Лерны с НПМ?
axelyung
1

голосов
0

ответ
40

Просмотры

Как сделать установку Monorepo с реагировать и реагировать родные приложения для обмена кодом между ними

Я хочу поделиться большинством реагировать нативный вход с вебом реагировать. Я использую реагировать-нативную веб-пакет для этого. импортировать файл в из общей папки не решает исправить путь. Мой проект установки выглядит следующим образом: -MyApp --mobile --web --shared
shubham choudhary
1

голосов
0

ответ
4

Просмотры

Lerna. Установка зависимостей для корневого проекта

У меня есть стандартный Lerna репо, как это: мой-репо - package.json - пакеты - API - package.json - веб-приложение - package.json Если мне нужна же зависимость в обоих пакетах (например lodash), то люди в учебники предполагают установить его на оба суб модулей и затем бутстраповский проект с с Lerna самонастройки --hoist флага. Из-за --hoist флаг lodash зависимость будет загружен только node_modules корневого уровня, но оба суб-модули будут содержать как зависимость в их соответствующей package.json Но алгоритм разрешения пакета в Node производит поиск файла дерево ищет папку node_modules. Так что мой вопрос, почему я не могу просто установить общие зависимости для проекта корневого уровня? Тогда он будет находиться под node_modules корневого и суб-модулей (пакеты) найти его из-за алгоритм поиска пакетов узла.
MyTitle
4

голосов
1

ответ
73

Просмотры

Как Разделить сборочные скрипты, Lerna пакетов

У меня есть Lerna репо, который содержит несколько пакетов, организованных в обычной структуре: package.json / пакеты - альфа package.json - браво package.json - чарли package.json мне нужно transpile все пакеты, и я в настоящее время имеют следующие сценарии в package.json каждого пакета в: "построить": "NPM пробег сборки: noWatch - --watch --verbose", "сборка: noWatch": «столпотворение ЦСИ --out-реж Lib --root режим вверх --ignore . ** / * test.js ', '** / __ tests__'», "prebuild": "rimraf Библиотека / *" Я в настоящее время запуска сборки с помощью: Lerna сборки запустить --stream --parallel Однако я не продублировать эти сценарии для каждого пакета. Я хотел бы определить сценарии в одном месте, но и использовать их из всех пакетов. Я в настоящее время быть_наст пыление скрипты и тестирование сценариев в моем корневом пакете, который имеет смысл там, как они эффективно пересекающий весь monorepo ищут испытания, или файлы пух. Это не seeem, имеет смысл переместить скрипты сборки там, а также они находятся в области видимости для отдельных пакетов, и мне нравится то, что я получаю другой вывод цвета для каждого пакета, когда я использую Lerna перспективу. Неудовлетворительно решение создать несколько сценариев оболочки в корне monorepo и вызывать их из package.json файлов из комплекта: В корневом / пакетах / например / package.json: „сценарии“: { „построить“:».. /../scripts/build.sh " "сборка: noWatch":" ../../scripts/build.sh " "prebuild":" ../../scripts/prebuild.sh»}, Тогда в корень / скрипты / build.sh: #! / Бен / ш столпотворение ЦСИ --out-реж Lib --root режим вверх --ignore '** / *. Test.js', '** / __ tests__' --watch --verbose Хотя это работает, это Безразлично «т чувствовать себя: она по-прежнему включает в себя дублирование между пакетами и требует установки разрешений на сценарии оболочки (что усложняет CI). Есть ли лучший способ разделить эти команды среди всех моих пакетов?
Undistraction
2

голосов
1

ответ
446

Просмотры

Как использовать eslint подключаемых модулей, расположенные в родительском каталоге?

У меня есть некоторые услуги, организованные в monorepo таким образом: repo_root / ├── услуги / │ ├── service_one / │ ├── service_two / │ └── service_three / ├── package.json ├── node_modules ├─ ─ .eslintrc Кроме того, каждая отдельная услуга имеет свою собственную package.json и node_modules. Я хотел бы использовать конфигурацию eslint, хранящуюся в каталоге repo_root к нибудь вкусненьким индивидуальным услугам. Моя проблема заключается в том, что, когда я пытаюсь запустить что-то вроде eslint услуги / service_one, например, он не может найти eslint подключаемые модули, которые необходимы .eslintrc и установленные в каталоге node_modules из repo_root. Я хотел бы избежать избыточно требовать эти подключаемые модули в каждой службе. Есть в любом случае, чтобы настроить eslint разумно найти модули, даже если они находятся в родительском каталоге самих услуг?
Brian Dennis
2

голосов
3

ответ
239

Просмотры

GitHub Облако сборки Интеграция с несколькими cloudbuild.yamls в monorepo

интеграция Сложение Google Cloud GitHub в не обнаруживает cloudbuild.yaml или Dockerfile, если он не находится в корневом каталоге репозитория. При использовании monorepo, который содержит несколько cloudbuild.yamls, как можно GitHub в Google Cloud Строить интеграции быть сконфигурирован для обнаружения правильного cloudbuild.yaml? Пути к файлам: Услуги / API / cloudbuild.yaml услуги / Nginx / cloudbuild.yaml услуги / WebSocket / cloudbuild.yaml Облако Постройте выход интеграции:
sabrehagen
2

голосов
0

ответ
81

Просмотры

реализации monorepo для узла реагировать и веб-приложение, расслоение плотной, используя Lerna

Я пытаюсь построить monorepo, которые состоят из приложения среагировать и узел Js так папку FRONTEND, которая создается с помощью реакции приложения и папки BACKEND, которые состоят из всего кода сервера. Я сделал следующие шаги установлены Lerna глобально создал новую папку и инициализировать репозиторий. внутри новой папки запуска Lerna инициализации, который создал 2 файлов lerna.json, package.json и 1 папку в качестве пакетов. в пакетах папки бегает создать реагирующую-приложение FRONTEND, он создал новое приложение реагирует запустить команду MKDIR BACKEND, чтобы создана папка BACKEND в пакетах папки теперь моя папка пакетов состоит из двух папок внешних и внутреннего. в FRONTEND состоит из package.json, которая приходит с созданием реагирующего-приложения вопросами мне нужно удалить package.json из папки FRONTEND, как я настроить lerna.json и пакет ли. JSON в корневой папке. Как я могу запустить приложение? Я искал, но я не получаю решение сделать среагировать-nodejs приложения с помощью Лерно создать реагирующую-приложение
DILEEP THOMAS
6

голосов
0

ответ
250

Просмотры

С пряжи рабочих пространств, как можно скомпилированные бинарные файлы будут связаны с рабочей пост-компиляции?

Контекстная пряжа рабочих пространства обеспечивают удобную функциональность моно-Репо, как, где пакеты будут автоматически связаны между собой. Т.е. они могут требовать / импортировать друг друга, и их двоичные файлы связаны и доступны из корневого каталога рабочей области. Пример: рабочая область / package.json { "имя": "200180719 пряжа-бен", "версия": "1.0.0", "рабочие пространства": [ "пакеты / *"], "частный": правда} рабочее пространство /packages/a/package.json { "имя": "а", "версия": "1.0.0", "основные": "SRC / index.js", "бин": { "mycli": «ЦСИ /index.js»}} рабочее пространство / пакеты / а / SRC / index.js #! / USR / бен / окр узел console.log („Добро пожаловать в кли“) Если затем изменить каталог в основной рабочей области и запуска пряжи установить, пряжа правильно связывает двоичные файлы, и вы можете запустить: пряжи запустить mycli Из каталога рабочей области просто отлично. Большой! Проблема У меня есть проблема в том, что если ваш код сначала должен быть скомпилирована, бинарная не будет доступен до пряжи установки завершена (так как вы не должны грузить скомпилированный код в систему управления версиями). Я использую машинопись компилироваться CLI: Переименовать index.js в index.ts и обновить / package.json до: { «имя»: «а», «вариант»: «1.0.0», «главный»: «ЦСИ /index.js», "бин": { "mycli": "Dist / index.js"}, "скрипты": { "строить": "ТСК ЦСИ / index.ts --outDir расстояние", "предустановку": "пряжа запуск сборка"}, "devDependencies": { "машинопись": "^ 2.9.2" }} Даже если DIST / index.js правильно построить при запуске пряжи установить на рабочий каталог, он не может создать ссылку на бинарник: Томс-MacBook-Pro-2: 200180719 пряжа бен tommedema $ пряжи запустить mycli нить запустить v1.7.0 ошибка команды «mycli» не найдено. Вопрос: Как я могу сделать нить рабочего пространством двоичного связующей работу, когда мои программы должны быть составлены на установку? Если мне нужно использовать Lerna, чтобы сделать эту работу, это было бы совершенно нормально тоже (хотя желательно избегать вызова Lerna бутстрапе так, что должны быть избыточными с пряжей рабочими пространствами). Вопрос: Как я могу сделать нить рабочего пространством двоичного связующей работу, когда мои программы должны быть составлены на установку? Если мне нужно использовать Lerna, чтобы сделать эту работу, это было бы совершенно нормально тоже (хотя желательно избегать вызова Lerna бутстрапе так, что должны быть избыточными с пряжей рабочими пространствами). Вопрос: Как я могу сделать нить рабочего пространством двоичного связующей работу, когда мои программы должны быть составлены на установку? Если мне нужно использовать Lerna, чтобы сделать эту работу, это было бы совершенно нормально тоже (хотя желательно избегать вызова Lerna бутстрапе так, что должны быть избыточными с пряжей рабочими пространствами).
Tom
1

голосов
2

ответ
498

Просмотры

Как объединить GIT репозитории в подпапках без потери ветки и метки?

Хотя этот вопрос , казалось бы, дубликат или многие предыдущие (и десятки постов в блоге , занимающихся схожей тематики), мне нужно, чтобы вы знали , что я искал подход , который позволил бы мне сценарий его. все ветки и метки должны слившихся ветви и метки должны быть приставкой для того , чтобы избежать дублирования файлов не перекрывались бы потому , что мы импортируем в новую подпапку. Инкрементальный процесс слияния: быть в состоянии объединить новые репозитории позже я планирую перейти на установку monorepo медленно, одно хранилище одновременно. Сценарий Я пытаюсь построить должен работать так: ./merge-repo monorepo / подкаталог / Foo [email protected]: Пример / foo.git Это было бы предположить, что целевой репозиторий (monorepo) уже клонирован в monorepo / папке и что он не имеет каких-либо локальных изменений. Например, если бы foo.git мастер две ветви и разрабатывать и один имена тегов v1.0, после выполнения слияния, я бы ожидал увидеть ветви Foo-мастер и Foo-разработки и тег Foo-v1.0 внутри monorepo репозиторий. Я прочитал десятки статей (или сценарии), но до сих пор я не смог найти тот, который объясняет, как я могу получить это. Разъяснения Если у меня есть README.txt внутри корня foo.git репо, я бы ожидать, чтобы увидеть этот файл в monorepo / подкаталог / Foo / README.txt. Это единственный подход, который позволил бы мне объединить репозитории без конфликтов, если они собираются стать подкаталогами большого репо (подкаталоги, которые не существовали до того). Обновление Пока я еще не готов сказать, что проблема решена, я закончил писать эту Баш скрипт, который должен выполнить слияние после исправления к хранилищу исходного кода. Посмотрите на него https://github.com/ssbarnea/monorepo/blob/master/git-monorepo-add.sh PS. Я вернусь с правильным ответом, как только у меня есть надежное решение, проверенное со многими хранилищами.
sorin
3

голосов
1

ответ
1.1k

Просмотры

Запуск трубопровод строить из подкаталога в monorepo

Мы заинтересованы в продвижении monorepo мерзавца и хотели бы интегрировать его с трубопроводом на основе CI / CD. Общая картина, что мы видели до сих пор является единственным описанием трубопровода файл в корне репо, что предполагает один трубопровод за репо. Это, кажется, образец с последующим Jenkins трубопровода, Gitlab, BitBucket CI, CircleCI и другие. Учитывая monorepo, мы хотели бы несколько таких файлов, по одному для каждого проекта в репозитории. Есть ли трубопровод стиль CI, который делает это? Другой вариант, мы можем думать о том, трубопровод файл описания для всех проектов с пользовательской фильтрации. Есть ли какие-либо из существующих систем трубопроводов CI справиться с этим без дополнительного оборудования?
J Dunbar
1

голосов
2

ответ
469

Просмотры

Git совершает что прикосновение поддерева / вложенный

У меня есть PROJ monorepo проекта с использованием поддеревьев в подпапку под PROJ / саб. Я сделал тонны фиксаций, которые касаются как PROJ и к югу. Как опубликовать соответствующие изменения эффективно вверх по течению к югу? Обычно, я должен был бы вишневым выбрать каждую фиксацию с помощью мерзавца вишнево-подборщик -x --strategy = поддерево -Xsubtree = суб / фиксация-иой, но я сделал несметные фиксации, так что это неосуществимо. Как я могу интегрировать изменения в суб сразу? Например, создать один большой раздавленный совершить, что приведет к югу в том же состоянии он находится в моем monorepo. Связанный: Вид обязывает, что вносить изменения в подкаталоге, Как вишня выбрать диапазон коммитов и сливаются в другую ветку
rfabbri
3

голосов
2

ответ
1.1k

Просмотры

Jenkins multibranch pipeline only for subfolder

У меня есть GIT monorepo с различными приложениями. В настоящее время я единственный Jenkinsfile в корневой папке, содержащей трубопровод для приложения Alls. Это очень много времени, чтобы выполнить полный конвейер для всех приложений, когда коммит изменилось только одно приложение. Мы используем GitFlow-подобный подход к разветвлению так работы многоотраслевой Pipeline в Дженкинс, как идеально подходят для нашего проекта. Я ищу способ иметь несколько рабочих мест в Дженкинс, каждый из которых будет срабатывать только тогда, когда был изменен код соответствующего приложения. Идеальное решение для меня выглядит следующим образом: У меня есть несколько рабочих мест многоотраслевой трубопроводы в Дженкинс. Каждый из них ищет изменения только в заданной директории и поддиректорий. Каждый из них использует собственные Jenkinsfile. Работа тянуть мерзавец каждые Х минут, и если есть изменения в соответствующие каталоги в существующих отраслях - Посвященные строить; если есть новые ветви с изменениями в соответствующие каталоги - инициирует сборку. Что останавливает меня от этой реализации я пропускаю способ определить обязательство, какие папки должны игнорироваться во время выполнения сканирования по трубопроводу многоотраслевого. «Дополнительное поведение» для трубопровода многоотраслевого не «опрос игнорирует фиксации к определенным дорожкам» варианту, в то время как трубопроводные или Фристайл задания имеет. Но я хочу использовать трубопровод многоотраслевого. Решение описано здесь не работает для меня, потому что если будет новая отрасль с изменениями только «project1» тогда, когда трубопровод многоотраслевого для «проекта2» срабатывают его обнаружит эту новую отрасль в любом случае и построить его. Средства для каждой новой ветви каждые из моих многоотраслевых трубопроводов будут выполнены хотя бы один раз, независимо от того, есть ли изменения в соответствующий код или нет. Цените любую помощь или предложения, как я могу реализовать несколько многоотраслевых трубопроводы, следящих за те же репозиторий, но срабатывает только тогда, когда соответствующие части коды изменились
mrzodiak
3

голосов
0

ответ
201

Просмотры

Установите пакет из Lerna управляемого monorepo через мерзавец URL

Я использую пряжу для моего проекта. Мой проект имеет зависимость, которая произошла быть подпакетом большей monorepo поддерживается Лерно. Подпакет был обновлен, но не опубликовал еще и мне нужно что неопубликованной код. Есть ли способ, чтобы установить подпакет Lerna с помощью мерзавца URL? Благодарю.
Max Komarychev
7

голосов
0

ответ
142

Просмотры

Как поднять версию во всех пакетах при использовании пряжи рабочего пространства?

При использовании Пряжа Workspaces, мы имеем структуру проекта, как: - package.json - пакеты / - пакет-а / - package.json - index.js - пакет-B / - package.json - index.js Если пакет-б и много других пакетов в этом каталоге зависит от пакета-а и обновить версию пакета-а после внесения некоторых изменений, Как я могу обновить версию пакет-а во всех зависимых пакетах? Должен ли я сделать это вручную или есть способ лучше?
sidoshi
3

голосов
0

ответ
255

Просмотры

Введите определения для одноранговых пакетов в машинописном monorepos: разработка против производства

У меня есть monorepo проект, который использует пряжу рабочее пространство и Lerna; все его части написаны в машинописи. Модули расположены в подпапках, как пакеты / модуль-п и каждый модуль имеет свое собственное package.json следующих строки: «главный»: «Dist / index.js», «типы»: «Dist / index.ts», исходный код для каждого пакета находится в пакетах / модуль-п / SRC / index.ts, так что ничего необычного. Когда дело доходит до построения из командной строки или публикации, все работает хорошо - благодаря tsconfig.json и скрипт сборки в каждой папке пакета. Однако, когда дело доходит до редактирования кода изо дня в день в VSCode, вещи становятся не очень удобно, даже несмотря на то что я бегу TSC --watch все пакеты, чтобы сохранить связанные зависимостями в синхронизации. Когда я приказываю кнопкой мыши на определение, которое относится к пакету пэра, VSCode приносит мне пакеты / пакет-н / DIST / index.d.ts вместо пакетов / пакет-п / SRC / index.ts, что я может быть в настоящее время редактирования. Кроме того, когда я хочу, чтобы реорганизовать что-то с F2, может Dist / index.d.ts файлы будут иногда модифицированы, что заставляет меня перезапустить сборку: часы из-за ошибки. Дело в том, что машинопись видит ручной твики в ** / дист / index.d.ts и отказывается в дальнейшем обновлять эти файлы. Чтобы преодолеть это неудобство, я написал эти два сценария в корневом package.json, но я не большой поклонник моего собственного решения: «Использование-DEV-типизации»: «Lerna Exec \» СЭД -i ' 'S | \\\ "типа \\\":. * | \\\ "типа \\\" \\\ "SRC / index.ts \\\", |' package.json \ "", "потребительные прод-типизации": "Lerna Exec \" СЭД -i '' «s | \\\ "типа \\\":. * | \\\» Типы \\\ "\\\" Dist / index.ts \\\», |» package.json \ «» Вот как я их использование в том же корне package.json: «строить»: «пряжу потребительной Prod-типизацию && Lerna запуск сборки», «сборка: часы»: «Lerna запустить сборку; пряжа потребительной DEV-типизация && Lerna запустить --parallel строить: смотреть», Идея заключается в том, что перед тем, как начать редактирование файлов в VSCode и, таким образом, пойти на нить сборку: часы, я залатать все пакеты / пакет-п файлы / package.json заменив «типов»: «Dist / index.d.ts» с «типами»:.. «SRC / index.ts» Это исправляет команду + щелчки и рефакторинг, который является большим, когда дело доходит до разового здания (например, перед публикацией), «типы» вернуться к «Dist / index.d.ts». Мне интересно, если есть лучший способ добиться того, что я после этого, и это d бы замечательно, если кто-то может дать мне совет. Я уверен, что я совершу «SRC / index.ts» в результате аварии один день или даже опубликовать версию с этим значением. Содержание SRC / *. TS исключены НПХ релизов держать свои пакеты мало.
3

голосов
0

ответ
175

Просмотры

Что является лучшей стратегией для построения microservices в моно репо?

У меня есть моно репо (GIT) в котором находится несколько microservices, что я работаю на. На толчке, служба третьей стороны сборки обнаруживает этот толчок и начинает обработку сборки и развертывания. Это прекрасно работает. Но теперь я пытаюсь оптимизировать этот процесс, и я хотел бы только он строить конкретные услуги я работаю на. Это означает, что услуги сборки должны определить, какие папки были изменены и строить только те услуги. Я получил этот процесс, чтобы работать на Travis довольно хорошо, потому что он имеет переменные окружения GIT_COMMIT_RANGE. Так что я могу получить все коммиты в моем последнем толчке, а затем через все эти коммиты получить папки, которые были изменены .. это работает очень хорошо .. но только на Трэвиса. Я хочу, чтобы вырезать Travis и строить свои Docker изображения непосредственно на GCP или любой другой третьей сторона контейнера строитель я использую, но я только хочу, чтобы создать папки, которые были изменены. Я имею в виду, что можно было бы сделать это с мерзавцем совершить крюк. С помощью этого крючка я могу начать генерировать список папок, чтобы отметить для сервера сборки строить, или даже начать генерировать сборки файл (cloudbuild.yaml). Тогда на какой-то мерзавец нажимной крючке, (там даже после нажим крючок) сбросить содержимое файла cloudbuild.yaml локально.
tensai
5

голосов
0

ответ
201

Просмотры

с Lerna monorepo, как ссылаться на различные версии общего пакета?

Новое в Лерен и monorepo, мое понимание с Лерна, мы помещаем все общие пакеты и все пакеты потребителей в одном репо. Тогда после того, как «Lerna самозагрузки», consumer1 и consumer2 оба имеют локальную ссылку shared1 (symllink). Таким образом, всякий раз, когда я внести изменения в shared1, как consumer1 и consumer2 затронуты. Есть ли способ сделать consumer1 и consumer2 указывают на различные версии shared1? так что, когда я внести изменения в shared1, только consumer1 влияет и consumer2 нет.
Nan Li
7

голосов
3

ответ
1.4k

Просмотры

Машинопись: Поддержка Пряжа Workspaces IDE (IntelliJ, VSCode ...)

Работая над более крупным проектом машинописи мы решили перенести код в monorepo с пряжей рабочих пространствами. Мы используем WebPack строить и расслоение и все работает хорошо (особенно увязку между локальными модулями / пакетами). Поскольку пряжа рабочие области будет хранить большинство node_modules в корневой папке монодинамика Repo, интегрированная среда (IntelliJ, а также VSCode) имеют проблемы разрешения импорта в любых node_modules при кодировании внутри «внутреннего» проекта (так называемый «пакет» из monorepo ). Странно то, что импорт не известны, но с другой стороны, большую часть времени вы можете перейти к правильному определению источника / в ид для того же импорта, если вы запишите его вручную. Мы постарались рассказать IntelliJ смотреть в другую папку для node_modules, но до сих пор не удовлетворяющие. Пожалуйста, поделитесь своим опытом с пряжи рабочих пространств / monorepo (например Lerna) и как вы разрабатываете код, живущих в этих monorepos. Какой IDE вы используете? Добавили ли вы какие-либо специальные конфигурации в IDE и / или package.json, tsconfig.json?
Frithjof Schaefer
2

голосов
0

ответ
233

Просмотры

Объединение нескольких небольших приложений в SPA приложения

Извините за Скучный вопрос, но это сложная установка. Наше приложение является SPA в Monorepo. Приложение рода «оболочки», которая загружает меньшие отдельные приложения в него. Наша структура папок выглядит следующим образом: Root / сборки / - Все наши средства разработки и конфигурации (в том числе WebPack) node_modules / - Все зависимости Dev для инструментов здесь проекты / приложения / оболочка / app1 / node_modules / - Все зависимости приложения и DEV зависимости здесь SRC / package.json tsconfig.json app2 / ... и т.д. компоненты / comp1 / SRC / package.json tsconfig.json comp2 / ядро ​​/ загрузчик / SRC / index.ts package.json Таким образом, в этой структуре " ракушка" приложение является приложением, которое загружает каждый из «App1», «app2» и т.д. Это означает, что в приложении оболочки, есть зависимость от App1, app2 и т.д. Но в дополнение к этому, каждый из отдельных приложений также может работать автономно без необходимости запуска из оболочки. Компоненты являются компонентами, которые мы написали, и являются зависимостями приложений или других компонентов. Загрузчик является то, что держит все зависимости рамочной коды (в данном случае Aurelia и Redux). Это devDependency каждого приложения, но зависимость от оболочки. Это позволяет УБС к запускать приложения автономно при разработке (но не в производстве, где он всегда запускать из оболочки). В настоящее время, чтобы получить вещи, чтобы построить и корабль, WebPack расслоения все в оболочке в один файл, а затем развертывает это. Все хорошо, все работает, но это не является идеальным. Каждое приложение в этом проекте принадлежит различным командам. У каждой команды есть свои собственные циклы выпуска, и мы хотим, чтобы иметь возможность дать им возможность создавать и развертывать свои собственные приложения, не влияя на другие. Идеальная установка (после комплектации) будет: bootstrapper.hash.js // Содержит наш Загрузчик и структура кода app1.hash.js // Содержит приложение и его зависимость (кроме загрузчика и рамок) app2.hash.js // и т.д. shell.hash.js // код оболочки То, что мы хотели бы от этого, чтобы быть в состоянии загрузить приложение оболочки, и загружать только app1 / app2 файлы как расслоение плотной необходимости. В моем понимании, мы должны были бы использовать загрузчик скрипт, чтобы сделать это по требованию, так как WebPack не обрабатывает этот случай использования, который я хорошо с. То, что я не могу понять, хотя, как построить каждое отдельное приложение без кода загрузчика, и с его быть в состоянии привести в динамически во время выполнения. Мы также хотим, чтобы приложения locateable во время выполнения, без необходимости повторного развертывания других приложений. Если мы добавим app3.hash.js, мы хотим, чтобы иметь возможность загружать, динамически. То, что я не могу понять, как связать приложения, как мы хотим. Ближайший я получил, чтобы использовать CommonsChunksPlugin, но это требует от нас, чтобы построить оболочку. Мы бы хотели в идеале что-то вроде как работает DllPlugin, поэтому мы можем построить каждое приложение в отдельности, но это требует ссылки на это ясно из оболочки, которая требует от нас создания оболочки. Мы также попробовали библиотеку комбинаций и libraryTarget и внешние, не имели успеха. Есть идеи? Спасибо! Если мы добавим app3.hash.js, мы хотим, чтобы иметь возможность загружать, динамически. То, что я не могу понять, как связать приложения, как мы хотим. Ближайший я получил, чтобы использовать CommonsChunksPlugin, но это требует от нас, чтобы построить оболочку. Мы бы хотели в идеале что-то вроде как работает DllPlugin, поэтому мы можем построить каждое приложение в отдельности, но это требует ссылки на это ясно из оболочки, которая требует от нас создания оболочки. Мы также попробовали библиотеку комбинаций и libraryTarget и внешние, не имели успеха. Есть идеи? Спасибо! Если мы добавим app3.hash.js, мы хотим, чтобы иметь возможность загружать, динамически. То, что я не могу понять, как связать приложения, как мы хотим. Ближайший я получил, чтобы использовать CommonsChunksPlugin, но это требует от нас, чтобы построить оболочку. Мы бы хотели в идеале что-то вроде как работает DllPlugin, поэтому мы можем построить каждое приложение в отдельности, но это требует ссылки на это ясно из оболочки, которая требует от нас создания оболочки. Мы также попробовали библиотеку комбинаций и libraryTarget и внешние, не имели успеха. Есть идеи? Спасибо! так что мы можем построить каждое приложение в отдельности, но это требует ссылки на это ясно из оболочки, которая требует от нас создания оболочки. Мы также попробовали библиотеку комбинаций и libraryTarget и внешние, не имели успеха. Есть идеи? Спасибо! так что мы можем построить каждое приложение в отдельности, но это требует ссылки на это ясно из оболочки, которая требует от нас создания оболочки. Мы также попробовали библиотеку комбинаций и libraryTarget и внешние, не имели успеха. Есть идеи? Спасибо!
Willson Haw
2

голосов
1

ответ
435

Просмотры

Publishing multiple cobertura coverages with TFS CI

У меня есть проект monorepo, созданный с Лерны. И я использую Карма + жасмин для модульного тестирования. Структура проекта выглядит следующим образом: | -packages | | -Package1 | | | -Coverage | | | | -Cobertura | | | | | -Coverage.xml // здесь идет отчет покрытия в формате Cobertura | | | | -Browser1 | | | | | -Html // здесь идет отчеты в HTML (стамбульского) для браузера 1 | | | | -Browser2 | | | | -Html // здесь идет отчеты в HTML (стамбульского) для браузера 2 | | | -Src | | |-Тесты | | -Package2 | | | -Coverage | | | | -Cobertura | | | | | -Coverage.xml | | | | -Browser1 | | | | | -Html | | | | -Browser2 | | | | -Html | | | -Src | | |-Тесты | , | , | , | -Karma.conf.js Испытательная установка работает должным образом и генерации отчетов HTML, а также coverage.xml в формате Cobertura внутри каждого отдельного пакета. В TFS CI, У меня есть "Опубликовать Code Coverage Результаты" построить шаг опубликовать результаты покрытия со следующими значениями для различных вариантов: Code Coverage Tool: Cobertura Краткое описание файла: $ (System.DefaultWorkingDirectory) \ пакеты \ * \ освещение \ Cobertura \ coverage.xml Report Каталог: $ (System.DefaultWorkingDirectory) \ пакеты \ * \ охват (для HTML-отчетов) Тем не менее, шаг сборки предупреждает о следующих были найдены несколько файлов или каталогов ссылок. Используя первый матч: C: \ MyAgent \ путь \ к \ пакеты \ package1 \ были найдены охват \ Cobertura \ coverage.xml несколько файлов или каталогов ссылок. Используя первый матч: C: \ MyAgent \ путь \ к \ пакетов \ package1 \ охват Естественно, также показывает результаты для покрытия только из одного пакета. Есть ли способ, чтобы опубликовать все отчеты покрытия без добавления шага сборки в CI для каждого пакета? построить шаг опубликовать результаты покрытия со следующими значениями для различных вариантов: Code Coverage Tool: Cobertura Краткое описание файла: $ (System.DefaultWorkingDirectory) \ пакеты \ * \ освещение \ Cobertura \ coverage.xml Report Каталог: $ (System.DefaultWorkingDirectory) \ пакеты \ * \ охват (для HTML-отчетов) Тем не менее, шаг сборки предупреждает о следующих нескольких файлов или каталогов, матчи были найдены. Используя первый матч: C: \ MyAgent \ путь \ к \ пакеты \ package1 \ были найдены охват \ Cobertura \ coverage.xml несколько файлов или каталогов ссылок. Используя первый матч: C: \ MyAgent \ путь \ к \ пакетов \ package1 \ охват Естественно, также показывает результаты для покрытия только из одного пакета. Есть ли способ, чтобы опубликовать все отчеты покрытия без добавления шага сборки в CI для каждого пакета? построить шаг опубликовать результаты покрытия со следующими значениями для различных вариантов: Code Coverage Tool: Cobertura Краткое описание файла: $ (System.DefaultWorkingDirectory) \ пакеты \ * \ освещение \ Cobertura \ coverage.xml Report Каталог: $ (System.DefaultWorkingDirectory) \ пакеты \ * \ охват (для HTML-отчетов) Тем не менее, шаг сборки предупреждает о следующих нескольких файлов или каталогов, матчи были найдены. Используя первый матч: C: \ MyAgent \ путь \ к \ пакеты \ package1 \ были найдены охват \ Cobertura \ coverage.xml несколько файлов или каталогов ссылок. Используя первый матч: C: \ MyAgent \ путь \ к \ пакетов \ package1 \ охват Естественно, также показывает результаты для покрытия только из одного пакета. Есть ли способ, чтобы опубликовать все отчеты покрытия без добавления шага сборки в CI для каждого пакета? $ (System.DefaultWorkingDirectory) \ пакеты \ * \ освещение \ Cobertura \ coverage.xml Report Каталог: $ (System.DefaultWorkingDirectory) \ пакеты \ * \ охват (для HTML-отчетов) Тем не менее, шаг сборки предупреждает о следующем Multiple файла или каталога были найдены совпадения. Используя первый матч: C: \ MyAgent \ путь \ к \ пакеты \ package1 \ были найдены охват \ Cobertura \ coverage.xml несколько файлов или каталогов ссылок. Используя первый матч: C: \ MyAgent \ путь \ к \ пакетов \ package1 \ охват Естественно, также показывает результаты для покрытия только из одного пакета. Есть ли способ, чтобы опубликовать все отчеты покрытия без добавления шага сборки в CI для каждого пакета? $ (System.DefaultWorkingDirectory) \ пакеты \ * \ освещение \ Cobertura \ coverage.xml Report Каталог: $ (System.DefaultWorkingDirectory) \ пакеты \ * \ охват (для HTML-отчетов) Тем не менее, шаг сборки предупреждает о следующем Multiple файла или каталога были найдены совпадения. Используя первый матч: C: \ MyAgent \ путь \ к \ пакеты \ package1 \ были найдены охват \ Cobertura \ coverage.xml несколько файлов или каталогов ссылок. Используя первый матч: C: \ MyAgent \ путь \ к \ пакетов \ package1 \ охват Естественно, также показывает результаты для покрытия только из одного пакета. Есть ли способ, чтобы опубликовать все отчеты покрытия без добавления шага сборки в CI для каждого пакета? этап сборки предупреждает о следующих нескольких файлов или каталогов, матчи были найдены. Используя первый матч: C: \ MyAgent \ путь \ к \ пакеты \ package1 \ были найдены охват \ Cobertura \ coverage.xml несколько файлов или каталогов ссылок. Используя первый матч: C: \ MyAgent \ путь \ к \ пакетов \ package1 \ охват Естественно, также показывает результаты для покрытия только из одного пакета. Есть ли способ, чтобы опубликовать все отчеты покрытия без добавления шага сборки в CI для каждого пакета? этап сборки предупреждает о следующих нескольких файлов или каталогов, матчи были найдены. Используя первый матч: C: \ MyAgent \ путь \ к \ пакеты \ package1 \ были найдены охват \ Cobertura \ coverage.xml несколько файлов или каталогов ссылок. Используя первый матч: C: \ MyAgent \ путь \ к \ пакетов \ package1 \ охват Естественно, также показывает результаты для покрытия только из одного пакета. Есть ли способ, чтобы опубликовать все отчеты покрытия без добавления шага сборки в CI для каждого пакета?
Sayan Pal
3

голосов
1

ответ
261

Просмотры

CI / CD независимых microservices в monorepo с мерзавца Баш

Использование Bash и мерзавца, как я могу получить коллекцию каталогов, содержащих файлы, которые отличаются от этого последнего времени филиал был слит в мастер? Еще лучше было бы собрание изменился, соответствующий шаблон, такие как содержащий конкретное имя файла, то есть создания коллекции измененных каталогов, содержащих package.json и другая коллекция изменилась, содержащей requirements.txt.
Tom
3

голосов
1

ответ
871

Просмотры

Git Поддеревья против Monorepo

Недавно мы решили перейти от TFVC к Git, и я пытаюсь найти лучший способ проектировать нашу новую архитектуру Git. Наш код состоит из независимых, но тесно связанных модулей, давайте рассмотрим следующие проекты: CommonLib1 CommonLib2 ApplicationA (использует CommonLib1) ApplicationB (использует CommonLib1 & CommonLib2) Хотя CommonLib1 / CommonLib2 полностью независимы, почти каждая новая функция для ApplicationA / ApplicationB потребует модификации CommonLib1 / CommonLib2. Кроме того, при добавлении новых функций, которые мы хотели бы создать одну ветвь, которая будет охватывать между всеми нашими проектами. Насколько я понимаю, я остался с 2-х основными параметрами: Создать репозиторий для каждого проекта, а также добавить CommonLib1 / CommonLib2 в качестве поддерев в ApplicationA / ApplicationB. Создание единого Monorepo для всех проектов.
Michael
2

голосов
1

ответ
111

Просмотры

Interdependencies between two lerna monorepos

У меня два monorepos, которые я хочу, чтобы одновременно развиваться. Вот структура: Monorepo package.json lerna.json пакеты / componentA1 componentA2 Monorepo B пакеты package.json lerna.json / componentB1 componentB2 Вот зависимости: 1) componentA2 зависит от componentA1 2) componentB2 зависит от componentA1 3) monorepoB зависит componentA2 Я использую Lerna Exec - НАЯ ссылку Command на оба monorepos. Это делает все прекрасное в одном monorepo. Теперь я делаю регулярные НУЮ ссылку componentA1 componentA2 в monorepoB после их отношений зависимости. В то время как это работает для componentB2 он не для componentB1. Проблема, кажется, что сшивание не будет работать, если сам связанный компонент зависит от некоторого внутреннего пакета. Если я НПЙ Ls componentA2 в monorepoB я получаю └── @ monorepoA /componentA2 @ ххх -> / Users / kbhit / Источники / ххх / DDL-админ / DDL-админ-дерзость / пакеты / дерзость недействителен Но ссылки на componentA1 действительны (но это не имеет транзитивных зависимостей). Как решить эту проблему?
kboom
2

голосов
0

ответ
96

Просмотры

Lerna, обычные коммиты и долгосрочные выпуски поддержки

У нас есть несколько пакетов в monorepo, управляемый Лерна и с обязательными обычными фиксациями. Пока все находится на той же странице , на ГОЛОВЕ мастер / последней версии, все отлично работает. Но теперь у нас есть потребность в создании долгосрочных релизов поддержки, то есть основная версия , что мы продолжаем Бэкпорт исправления в. Как это должно работать с Лерны? Например , Скажем , у меня [email protected] и [email protected] и б зависит от а. Я делаю разрывное изменение а и опубликовать предоставленный мне [email protected] а также [email protected] из - за версию бугорка. Я обнаружил ошибку в, зафиксировать его на хозяин и публиковать который создает [email protected] , а также [email protected] Я создаю ветку от пункта 1 выше и портировать исправление (для целей долгосрочной поддержки). Когда я публикую его правильно пытается создать [email protected] , но не при попытке создать [email protected] , так что версия уже существует. Есть идеи?
Jure Triglav
2

голосов
0

ответ
102

Просмотры

Как управлять SCSS таблицы стилей через monorepo с различными библиотеками обмена переменными?

У меня есть угловое monorepo настроить с помощью Nrwl и я использую тематизации ANGULAR материала, который использует SASS. Я хочу, чтобы исходная SCSS файлов для импорта на уровне проекта, где я переопределить цвета по умолчанию для переменных тематизации. Проблема я бегу в том, что я хочу, чтобы импортировать исходные SCSS файлы в другие приложения / библиотеки в моем monorepo и проектов за пределами этого monorepo. Я могу написать мой импорт, как: @import «../other-lib/style.scss»; ..., который будет работать на что-нибудь внутри от monorepo. Или я могу написать это так: @import «[email protected]/other-lib/style.scss»; ... который не будет работать внутри моего monorepo, AFAIK. Как заставить его работать в обоих контекстах? Это что-то вроде установки на диаграмме ниже.
Man Personson
2

голосов
0

ответ
202

Просмотры

Как создать в-пакет пакет-lock.json для существующих Lerna моно-репо

У нас есть существующий Lerna моно-репозиторий, который имеет структуру, как: / / пакеты / package1 / package2 / упаковке3 ... В настоящее время мы не используем пряжу для нашего проекта, и на самом деле есть только файл yarn.lock верхнего уровня, без какого-за -package yarn.lock, так как мы никогда не использовали Workspaces. Мы пытаемся, чтобы перейти к НПМ, и хотел бы создать файл пакета-lock.json для каждого пакета в моно-репо, а не только на высшем уровне. Как мы можем это сделать? Запуск НПМ запуск Lerna самозагрузка --hoist создает файл блокировки верхнего уровня, но не включает в себя «Dev»: истинные тег и не включает в себя любые локальные пакеты. Лучшее, что я был в состоянии сделать это, чтобы сделать НПМ запустить Lerna добавить somePackage --scope = package1, что даже если somePackage уже существует в пакете, вызывает файл пакета-lock.json будет генерироваться для каждого пакета в моно репо кроме упаковке1. Кроме того, сгенерированные пакет-lock.json файлы не имеют никаких зависимостей Dev. Кроме того, я не могу идти в каждый пакет и запустить НПМ установить, потому что НПМ не знает о многих локальных пакетов мы имеем в моно-репо, что другие локальные пакеты зависят от. Как ни странно, даже в пакете-lock.json файлы, полученные от НОГО через Лерно добавить эти файлы не содержат какие-либо ссылок на локальные пакеты, только внешние. Итак: как сгенерировать файл пакета-lock.json для каждого пакета в моно-репозиторий, который также включает в себя devDependencies? даже в пакете-lock.json файлы, полученные от НПМ через Лерны добавить эти файлы не содержат каких-либо ссылок на локальные пакеты, только внешние. Итак: как сгенерировать файл пакета-lock.json для каждого пакета в моно-репозиторий, который также включает в себя devDependencies? даже в пакете-lock.json файлы, полученные от НПМ через Лерны добавить эти файлы не содержат каких-либо ссылок на локальные пакеты, только внешние. Итак: как сгенерировать файл пакета-lock.json для каждого пакета в моно-репозиторий, который также включает в себя devDependencies?
Matthew Herbst

Просмотр дополнительных вопросов