Я использую рабочие пространства lerna и yarn в моем монорепозитории. Структура пакета выглядит так:
root
`--- packages
|--- pkg1
| |--- src
| | `--- index.ts
| `--- dist
| `--- index.js
`--- pkg2
|--- src
| `--- index.ts
`--- dist
`--- index.js
src
папка компилируется в dist
папку. - Из каждого пакета я хотел бы публиковать только sh папку
dist
, чтобы импорт работал без необходимости в записи main
в пакете. json указывала на папку dist
. Это легко сделать с помощью lerna: lerna publish --contents dist
.
Это отлично работает для внешних проектов, которым необходимо использовать это репо, однако это не работает в самом репо. Например, если pkg2
зависит от pkg1
, он ищет файл index. js pkg1 по адресу pkg1/index.js
, в то время как на самом деле скомпилированная версия находится под pkg1/dist/index.js
. Как я могу заставить эту работу работать?
PS Я видел эту работу в репозиториях вроде material-ui , но я не могу объяснить, как она там работает!