Настройка Lerna для среды разработки: использование общего пакета - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть монорепо, построенное с Lerna.Он имеет следующую структуру:

packages
  - create-react-app-example
  - utils

create-react-app-example похоже на то, что производит create-react-app.Т.е. он использует веб-пакет для переноса кода ES6 / ES7, имеет горячую замену модуля при изменениях файлов и т. Д. В пакете

utils есть только 1 файл с некоторой служебной функцией.И эта функция используется изнутри create-react-app-example пакета;Он не использует Webpack, Babel или любой другой инструмент;

Итак, все довольно просто.

Но у меня бывают трудные времена, когда я пытаюсь настроить удобную среду разработки.

Поэтому есть несколько вещей, которые я хочу:

  • , чтобы иметь возможность использовать код es6 / es7 внутриutils пакет (код этого пакета должен быть как-то передан);
  • автоматические горячие обновления основного модуля, когда что-то меняется в пакете utils;

Единственное, что мне пришло в голову, это настроить webpack.config.js из create-react-app-example:

  • изменить настройку загрузчика babel, чтобы он не исключалПапка node_modules/utils и будет ее переносить;
  • и изменение параметров webpack watch, чтобы она обнаруживала изменения в обоих пакетах

Но решение мне не нравится выше, оно выглядитгрязно для меня.

Может быть, есть более элегантное решение?

Или, может быть, я должен также добавить webpack.config в пакет utils и каким-то образом использовать его в качестве библиотеки?Если я правильно помню, Webpack имеет такую ​​функциональность.

Спасибо

1 Ответ

0 голосов
/ 29 декабря 2018

, чтобы иметь возможность использовать код es6 / es7 в пакете утилит (код этого пакета должен быть каким-либо образом передан);

Если вы действительно хотите сохранить утилиты как отдельный пакет,просто настройте babel для переноса его отдельно от приложения CRA.Вы можете сделать это, используя babel cli , вот пример того, как это сделать: https://github.com/babel/example-node-server

автоматические горячие обновления основного модуля, когда что-то меняется в пакете utils;

Ваша идея, чтобы настроить часы Webpack звучит правильно.Документы здесь

Скорее всего, у вас будет 2 часа: babel, переносящий пакет утилит, и веб-пакет для сборки и комплектации приложения CRA.

...