Создание библиотеки с импортом из другой библиотеки с помощью NX Monorepo

Вот такой случай. Я использую Nrwl NX Monorepo. У меня есть 2 библиотеки lib-a и lib-b, обе - публикуемые библиотеки, созданные через NX. Теперь я создаю MyClass.ts в lib-a. Естественно, под путями в workspace / tsconfig.json paths NX создает псевдоним для этой библиотеки lib-a ("@ workspace / lib-a": ["libs / lib-a / src / index.ts"]). Все идет нормально. Теперь мы можем использовать этот класс в любом месте рабочей области / монорепозитория, импортировав его "import {MyClass} из '@ workspace / lib-a';

К сожалению, мы не можем собрать lib-b, импортирующую MyClass. Когда мы пытаемся это сделать, мы получаем следующую ошибку. Итак, вопрос в том, как мы можем собрать lib-b?

PS Кажется странным, что NX monorepo на самом деле не поддерживает такой распространенный сценарий, связывающий 2 публикуемые библиотеки.

"ошибка TS6059: файл" d: /workspace/libs/lib-a/src/index.ts "не находится в 'rootDir'" d: \ workspace \ libs \ lib-b \ src "rootDir должен содержать весь исходный код файлы "


person Hivaga    schedule 15.07.2019    source источник


Ответы (1)


Попробуйте добавить

"paths": { "@workspace/*": ["dist/libs/*"] }

в ваши файлы tsconfig.lib.json. Это должно решить проблему.

person Radovan Skendzic    schedule 02.09.2020