【发布时间】:2021-09-06 13:53:18
【问题描述】:
我们有关于使用可加载和所有 webpack 优化的反应和完成代码拆分的网站。有一件事是关于我们使用 70 个 npm 库,它会导致我们使用 splitChunks webpack 拆分的大供应商块。
如果我们有一个页面只使用了 70 个库中的 10 个,但是 webpack 会以 vendor-react 和 vendor-all 等形式一次加载所有库。
有没有办法根据路由拆分节点模块,如果一个页面使用 10 个库,我们一次只加载 10 个库而不是整个 node_modules。
例如我们有三个页面 HOME Page, PRODUCT LISTING PAGE, PRODUCT DETAIL PAGE。
并且在 json 包中我们安装了 10 个库 例子
"react-collapsible"
"react-cookie"
"react-datepicker"
"react-day-picker"
"react-dropdown"
"react-google-maps"
"react-helmet"
"react-id-swiper"
"react-lazy-hydration"
"react-lazyload"
"react-lazyload-img"
"redux-actions"
"redux-connect"
"redux-form"
"redux-thunk"
"serialize-javascript"
"snake-case"
"superagent"
"superagent-logger"
"swiper"
主页: 需要3个包: “反应可折叠” “反应饼干” “反应日期选择器” 产品列表页面 需要4个包: “反应头盔” “反应-id-swiper”, “反应懒惰水合作用” “反应延迟加载”
产品详情页。 需要4个包 “序列化-javascript” “蛇盒” “超级代理” “超级代理记录器”
必须有公共库,因为供应商将为所有页面加载。
现在如果我打开主页, 只会加载首页 3 个包和公共块。
不应加载产品和详细信息包。 如果我打开产品列表页面, 只会加载 4 个包和公共块。 不应加载主页包。
【问题讨论】:
-
负载是什么意思?你的意思是下载库,运行它,还是两者兼而有之?
标签: javascript reactjs webpack micro-frontend react-loadable