Monorepo и проблема со сборкой пакетов

#node.js #reactjs #yarnpkg #craco

#node.js #reactjs #yarnpkg #craco

Вопрос:

Я пытаюсь создать модульное приложение React, используя monorepository (рабочие пространства) — в корневой папке у меня есть package.json:

 {
  "private": true,
  "workspaces": ["shared/react-components", "client/react-app"],
  "scripts": {
    "start": "yarn --cwd shared/react-components build amp;amp; yarn --cwd client/react-app start"
  }
}
  

Я хочу включить общие / реагирующие компоненты (названные, например, как @ shared /react-components) в client / react-app, но прежде чем мне нужно будет скомпилировать общий модуль, и в этом месте я получаю неприятную ошибку:
Error: 'default' is not exported by ../../node_modules/deepmerge/dist/cjs.js, imported by src/styles/dark.ts

Я запустил yarn install раньше, поэтому deepmerge доступен в / node_modules. Если я удалю конфигурацию рабочих пространств и запущу: yarn install amp;amp; yarn build в shared / react-components, все работает, поэтому кажется, что проблема в конфигурации рабочих пространств.

Сценарий сборки в общих / реагирующих компонентах является: rollup -c

Есть идеи, чего может не хватать?

Ответ №1:

Оказалось, что проблема была с пакетом deepmerge и TSX, длинный поток о проблемах с импортом можно найти здесь:https://github.com/TehShrike/deepmerge/issues/87 Я заменил его Lodash merge, и мои пакеты были собраны снова.