#javascript #node.js #reactjs #typescript #webpack
Вопрос:
Я хочу иметь монорепо, которое содержит следующее:
shared
: набор классов машинописи, которые можно использовать в ЛЮБОМ МЕСТЕWebClient
: веб-приложение react на JavaScript (в котором необходимо использовать кодshared
)WebServer
: серверное приложение TypeScript для приложения react (которое также должно использоватьshared
код)
Ключевой вопрос заключается в следующем: как определить, настроить и получить доступ к общему коду?
Я совершенно потерялся, я перепробовал сотню разных подходов, но ничего не работает. Любая помощь будет признательна.
ПРИМЕЧАНИЕ: ценю любые комментарии, но, пожалуйста, объясните, как будто мне 5 лет! Мини-репо на GitHub с 3 проектами HelloWorld было бы здорово!
Комментарии:
1. вы думали о том, чтобы создать пакет npm из общего кода и импортировать его при необходимости? сохранение его как отдельного проекта
2. эй, вы можете использовать
lerna
иyarn
рабочие пространства для достижения этой цели3. Спасибо, мне нужно гораздо больше деталей, пожалуйста. Я перепробовал ВСЕ.
4. конкретно, что вы пробовали? как же они потерпели неудачу?
5. «Я перепробовал сотню разных подходов, и ничего не работает», — старайтесь усерднее. Если вы просто наберете в Google monorepo react typescript, у вас будет масса рабочих примеров. (PS: Я недавно начал использовать
lerna
/yarn workspaces
и в Интернете есть много замечательных статей 🙂 )
Ответ №1:
Установите Lerna и используйте ее для управления shared
классами в виде пакетов. Прочитайте документацию и не бойтесь экспериментировать с ней.
Если вы хотите увидеть репозиторий Github, в котором используется Lerna, их довольно много, один из которых-Шутка Facebook.
Комментарии:
1. Я пытался это сделать, но у меня ошибка при импорте общего модуля. Каким должен быть модуль в tsconfig.json, чтобы он поддерживался как внешним, так и внутренним интерфейсом?