Как упаковать только папку dist в монорепо - PullRequest
0 голосов
/ 08 мая 2020

Я использую рабочие пространства 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 , но я не могу объяснить, как она там работает!

1 Ответ

0 голосов
/ 16 июня 2020

Посмотрите на поле "files" пакета. json file https://docs.npmjs.com/files/package.json#files

Поле «files» - это массив файлов, которые нужно включить в ваш проект. Если вы дадите имя папке в массиве, она также будет включать файлы внутри этой папки. (Если только они не будут проигнорированы другим правилом.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...