【发布时间】:2021-02-25 22:43:57
【问题描述】:
为了给你一些背景信息,我正在开发一个 .NET 核心应用程序,并且在其中一个 cshtml 中我正在注入一个这样的反应迷你应用程序:
<div id="workshop" data-id=@Model></div>
<script src="~/bundles/js/workshop-bundle.js"></script>
它运行良好,但是当我使用 webpack 编译时,workshop 包太大(800kb)并且我收到了警告。 Workshop-bundle 包含一些依赖项,例如 axios、highcharts-react-official 和 highcharts/highmaps。所以我尝试拆分捆绑包。
在 webpack.config.js 上,我尝试在其中一个条目中使用 DependOn。在这种情况下,workshop依赖axios、highcharts-react-official和highcharts/highmaps,所以基于webpack doc我尝试了这个:
webpack.config.js
entry: {
workshop: {
import: "./wwwroot/component/WorkshopApp.tsx",
dependOn: ["axios", "highmaps", "highchartreact"],
},
highchartreact: "highcharts-react-official",
highmaps: "highcharts/highmaps",
axios: "axios",
},
.cshtml:
<div id="workshop" data-id=@Model></div>
<script src="~/bundles/js/axios-bundle.js"></script>
<script src="~/bundles/js/highchartreact-bundle.js"></script>
<script src="~/bundles/js/highmaps-bundle.js"></script>
<script src="~/bundles/js/workshop-bundle.js"></script>
它生成了 4 个捆绑包,但应用程序没有显示,我没有收到任何错误。
但是,如果我将依赖项放在一个条目中,效果会很好:
webpack.config.js
entry: {
workshop: {
import: "./wwwroot/component/WorkshopApp.tsx",
dependOn: ["workshopVendor"],
},
workshopVendor: [
"axios",
"highcharts-react-official",
"highcharts/highmaps",
],
},
.cshtml:
<div id="workshop" data-id=@Model></div>
<script src="~/bundles/js/workshopVendor-bundle.js"></script>
<script src="~/bundles/js/workshop-bundle.js"></script>
这不是一个解决方案,因为我希望将依赖项放在单独的包中,知道吗? 提前致谢!
【问题讨论】:
-
你解决过这个问题吗?我有同样的问题。
标签: reactjs code-splitting webpack-5