小编Gon*_*ado的帖子

Webpack 5 DependOn 仅在条目仅依赖于一个依赖项时才起作用

为了给您一些背景信息,我正在开发一个 .NET 核心应用程序,并在其中一个 cshtml 中注入一个反应迷你应用程序,如下所示:

<div id="workshop" data-id=@Model></div>

<script src="~/bundles/js/workshop-bundle.js"></script>
Run Code Online (Sandbox Code Playgroud)

它运行良好,但当我使用 webpack 编译时,workshop 包太大(800kb),我收到了警告。研讨会包包含一些依赖项,例如 axios、highcharts-react-official 和 highcharts/highmaps。所以我尝试将这些包分开。

在 webpack.config.js 上,我尝试在其中一个条目中使用 DependOn 。在这种情况下,研讨会依赖于 axios、highcharts-react-official 和 highcharts/highmaps,因此根据 webpack 文档,我尝试了以下操作:

webpack.config.js

entry: {
    workshop: {
      import: "./wwwroot/component/WorkshopApp.tsx",
      dependOn: ["axios", "highmaps", "highchartreact"],
    },
    highchartreact: "highcharts-react-official",
    highmaps: "highcharts/highmaps",
    axios: "axios",
  },
Run Code Online (Sandbox Code Playgroud)

.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>
Run Code Online (Sandbox Code Playgroud)

它生成 4 个捆绑包,但应用程序未显示,并且我没有收到任何错误。

但是,如果我将依赖项放在一个条目中,它会很好地工作:

webpack.config.js

entry: {
    workshop: {
      import: "./wwwroot/component/WorkshopApp.tsx",
      dependOn: ["workshopVendor"],
    },
    workshopVendor: [
      "axios",
      "highcharts-react-official",
      "highcharts/highmaps",
    ],
  },
Run Code Online (Sandbox Code Playgroud)

.cshtml: …

reactjs code-splitting webpack-5

5
推荐指数
1
解决办法
3218
查看次数

标签 统计

code-splitting ×1

reactjs ×1

webpack-5 ×1