У меня есть монорепо с двумя пакетами. Одним из них является основное приложение, назовем его app
, а другим - общая библиотека, которую использует основное приложение, назовем ее lib
. Оба проекта являются TypeScript / Angular.
Структура моей папки выглядит следующим образом:
monorepo/
packages/
app/
lib/
Я пытаюсь настроить проект app
так, чтобы, когда он видит импорт из пакета lib
, вместо перехода на node_modules
я хотел, чтобы он шел в каталог вывода из сборки пакета lib
, Итак, я имею в своем tsconfig.json
:
{
"compilerOptions": {
"baseUrl": ".",
"rootDir": ".",
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es7", "dom"],
"mapRoot": "./",
"module": "es2015",
"moduleResolution": "node",
"outDir": "../dist/out-tsc",
"sourceMap": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"paths": {
"lib/*": ["../lib/dist/*"]
}
}
Однако, когда я пытаюсь запустить ng build
в папке app
, я получаю следующие сообщения об ошибках (одна и та же ошибка дважды, из двух разных мест):
ERROR in node_modules/@angular/core/src/render3/ng_dev_mode.d.ts(9,11): error TS2451: Cannot redeclare block-scoped variable 'ngDevMode'.
../lib/node_modules/@angular/core/src/render3/ng_dev_mode.d.ts(9,11): error TS2451: Cannot redeclare block-scoped variable 'ngDevMode'.
Как будто он пытается загрузить Angular дважды, один из каталога app
и один из каталога lib
.