Повторный экспорт JSS через index.js, вызывающий нежелательные повторные рендеры в несвязанных компонентах

У меня есть большая кодовая база, в которой используется Material UI с JSS .

      jss/
  a.js Default or named export `astyle` 
  b.js Default or named export `bstyle`
  index.js - Re-exports the JSS 

Все остальные файлы импортируются как import { astyle } from './jss'

      ComponentA.jsx - contains `import { astyle } from './jss'`
ComponentB.jsx - contains `import { bstyle } from './jss'`
App.jsx - imports ComponentA and ComponentB

Обновление a.js причины ComponentB для повторного рендеринга, могу ли я каким-то образом сказать webpack не перезагружать весь файл?

Компоненты работают нормально

      componets/
  ComponentC.jsx - default or named export
  ComponentD.jsx - default or named export
  index.js - Re-exports the components

App.jsx - import { ComponentC, ComponentD } from './components'

Обновление ComponentC не будет перерисовывать ComponentD или же components/index.js

Я ищу наименее разрушительное решение и предпочел бы не импортировать все стили напрямую по имени файла, избавившись от jss/index.js

Вот демонстрационное репо, основанное на примере репо с быстрым обновлением здесь

1 ответ

Оказывается, простое обновление до webpack 5 исправляет это, вы можете просмотреть обновленное репо в этой ветке

Другие вопросы по тегам