Совместное использование машинописного кода между двумя проектами в монорепозитории (точно так же, как локально)

Я играл с попыткой совместного использования кода между двумя репозиториями, поэтому я понимаю подход монорепозитория с использованием рабочих пространств lerna и yarn.

Но возьмем следующий пример: допустим, у меня есть 2 проекта React в одном монорепозитории. И они разделяют код, скажем так, они делятся:

components, utils, modules, redux reducers/actions

Почему я не могу создать «общую папку», а затем иметь возможность импортировать эти модули, как если бы я был локально.

import LoginComponent from '@shared/components/login/LoginComponent'


Насколько я понимаю, это невозможно сделать так, как указано выше? Поскольку вы теряете структуру папок из-за импорта репозитория @shared и должны экспортировать все внутри индекса

Итак, я думаю, я мог бы добавить package.json в корень @shared/*, но тогда у меня будет только одноуровневый каталог для структуры.

Кажется немного странным не иметь возможности просто импортировать из общего каталога между проектами в монорепозитории? Это по какой-то причине или я что-то упускаю?

Или что-то не так с последующим импортом кода, например:

import LoginComponent from '../../../shared/components/login/LoginComponent' ?

Где общий доступ будет в пределах /packages


person nicwhitts    schedule 17.10.2019    source источник


Ответы (1)


Вы действительно можете это сделать. Я сделал это с помощью проекта React TypeScript. Вы можете проверить эту реализацию здесь. http://devwithabhi.com/setting-up-react-typescript-monorepo-with-lerna/

person Abhishek Kulshrestha    schedule 24.07.2020