Настройка псевдонимов модулей в монорепозитории, загруженном с помощью турборепозитория
Я пытаюсь перенести несколько репозиториев на архитектуру монорепозитория и в настоящее время работаю над POC, загруженным с помощью турборепозитория.
Проблема, которую я вижу, заключается в том, что псевдоним модуля ts настроен неправильно. В настоящее время у меня есть один пакет пользовательского интерфейса, и я пытаюсь экспортировать компонент кнопки из index.tsx следующим образом (обратите внимание, код VS не жалуется, он думает, что может разрешить модуль):
Однако, когда я пытаюсь собрать свое приложение, я вижу, что модуль на самом деле не разрешен:
Модуль не найден: не удается разрешить «@/components/Button»
Я в недоумении, кто-нибудь знает, как правильно настроить псевдонимы модулей с турбо-репо? Ниже приведен tsconfig.json:
2 ответа
Вам необходимо настроить как packages/ui, так и root .
- Внутри packages/ui вы должны установить такие пути;
// root/packages/ui -> tsconfig.json
{
"extends": "tsconfig/react-library.json",
"include": ["."],
"exclude": ["dist", "build", "node_modules"],
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/components/*": ["components/*"] // Don't use "./components/*", instead like this: "components/*"
}
}
}
- в корне также.
// root -> tsconfig.json
{
"extends": "your_default_extends",
"compilerOptions": {
"plugins": [{your_plugins}],
"paths": {
"@*": ["./packages/ui/*"]
}
},
"include": ["your_include"],
"exclude": ["node_modules"]
}
Если у вас есть другой проект, который также хочет использовать псевдоним import @, просто добавьте маршрут в папку внутри корня.tsconfig.json
слишком.
// root -> tsconfig.json
{
"extends": "your_default_extends",
"compilerOptions": {
"plugins": [{your_plugins}],
"paths": {
"@*": ["./packages/ui/*", "./apps/some_project/src/*"] // here
}
},
"include": ["your_include"],
"exclude": ["node_modules"]
}