为了给您一些背景信息,我正在开发一个 .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>
这不是一个解决方案,因为我想要单独的包中的依赖项,知道吗?提前致谢!