Итак, последние несколько дней я совершенно напрасно пытался заставить горячую перезагрузку модуля работать в моем монорепозитории на основе Typescript / React / Koa / Mon go; Такое ощущение, что я бился головой о кирпичную стену. Документация для HMR жалка (почти все, что касается inte rnet, идет только часть способа объяснения, как что-то делать). Я много гуглил и читал много разных ... похожих версий моей проблемы, но, похоже, ни у кого нет полезного решения.
Я собрал минимальную версию проблемы репо: https://github.com/benwainwright/hmr-issue-minimal-repo, примерно так и настроен мой проект:
packages/one
- это рабочая область Yarn, содержащая код серверной части packages/two
is рабочее пространство Yarn, содержащее компоненты React / код внешнего интерфейса
Если я построю это и запущу, я иногда могу заставить его заметить, что я пытаюсь выполнить горячую перезагрузку в клиенте, сбой, а затем выполните полную перезагрузку страницы. Когда это происходит, на консоли появляется следующая ошибка
「hot」 Error: Aborted because ../two/renderApp.tsx is not acceptedUpdate propagation:
../two/renderApp.tsx -> ../two/index.tsx -> ./src/frontend-entry-point.tsx -> 1 at
hotApplyInternal (http://localhost/assets/app.js:508:30) at Object.hotApply [as apply]
(http://localhost/assets/app.js:362:19) at eval (webpack-internal:///./node_modules/webpack-hot-
client/client/hot.js:121:23)
Я пробовал всевозможные комбинации различных пакетов, а также поменял местами код, выполняющий горячую замену (https://github.com/benwainwright/hmr-issue-minimal-repo/blob/edcd8ad8c4fb9686abce12237d51a5b6f37dd636/packages/two/renderApp.tsx#L13 -L16 ) с react-hot-loader . Ничего не работает. Если у кого-нибудь есть какие-нибудь идеи, как заставить это работать, я буду бесконечно велик!