Мне нужно больше узнать о содержимом каждого файла package.json и проекте в целом, но вот некоторые элементы, которые могут помочь вам получить структуру goo, которая выполнила бы то, что вы сами настроили.
Если вы действительно хотите пойти по правильному монорепо-пути, вы можете взглянуть на https://github.com/lerna/lerna, который будет достаточно хорошо работать для узла 8 и выше (например, автоматическая символическая ссылка на зависимости файлов, что полезно в процессе разработки).
Другой способ решить эту проблему в TypeScript - использовать пути:
tsconfig.json
{
"compilerOptions": {
// path
"baseUrl": ".",
"paths": {
"@lib/*": ["./*"],
"@shared/*": ["../shared/*"]
}
}
Однако, в зависимости от того, как вы строите и запускаете свои проекты, пути иногда не обрабатываются должным образом. Возможно, вам придется использовать tsconfig-paths
, если вы запускаете проект с использованием ts-node
, или tsconfig-paths-webpack-plugin
, если вы используете TypeScript как часть проекта веб-пакета.