ReactJS — автоматическое создание блоков при отложенной загрузке

#reactjs #webpack

#reactjs #webpack

Вопрос:

Предположим, у нас есть три страницы, и мы хотим разделить их на разные блоки.Это может произойти, если мы добавим вручную /* webpackChunkName: "chunkName" */ .

 const Home = lazy(() => import(/* webpackChunkName: "HomePage" */ "../../pages/Home"));
const Login = lazy(() => import(/* webpackChunkName: "Login" */ "../../pages/Login"));
const Register = lazy(() => import(/* webpackChunkName: "Register" */ "../../pages/Register"));
  

Возможно ли облегчить нашу жизнь и избежать постоянного использования webpackChunkName?

Ответ №1:

Один из способов — использовать [request] заполнитель в комментарии к имени блока, чтобы динамически задавать имя блока.

Вы можете создать функцию, которая будет вызывать import() функцию и использовать [request] заполнитель для задания динамического имени блока.

После этого используйте эту функцию для ленивого импорта компонентов.

Вот один пример.

 const lazyImport = path => {
  return import(/* webpackChunkName: "[request]" */ `${path}`);
};

const Home = React.lazy(() => lazyImport("../../pages/Home"));
// Chunk name will be pages-Home.chunk.js