首页 > 解决方案 > Webpack 加载包但不执行代码

问题描述

我正在使用 django 加载 webpack 块,并且我有一些入口点。问题是我有一个包含所有 node_modules 包的供应商块,并且该应用程序在几乎所有入口点都可以正常工作。但是有几个入口点不需要加载供应商块,如果我不添加供应商块,则入口点文件会加载到浏览器中,但不会执行代码。如果我使用入口点加载供应商块,则可以。

例如我有这个入口点:

entry: {
  signup: path.join(sourcePath, 'signup/signup.js'),
  ...
}

注册的内容基本上是一个console.log(),它需要一个样式表

并且入口点像这样加载到模板中

<head>
  {% render_bundle 'signup' 'css' %}
  {% render_bundle 'signup' 'js' %}

</head>
<body>
....
</body>

我也在 webpack 配置中创建供应商包,如下所示:

config.optimization = {
  splitChunks: {
    cacheGroups: {
      commons: {
        test: /[\\/]node_modules[\\/]/,
        name: 'vendor',
        chunks: 'initial',
      }
    }
  }
};

当我在浏览器中加载页面时,它没有加载样式,也没有在入口点块内执行 console.log,但我可以看到注册块代码

在浏览器中加载的文件

我也一直在做一些测试,我意识到如果我在模板中加载块供应商也可以正常工作,如下所示:

<head>
  {% render_bundle 'signup' 'css' %}
  {% render_bundle 'signup' 'js' %}

  {% render_bundle 'vendor' 'js %}

</head>
<body>
....
</body>

任何人都知道为什么会发生这种情况?我不需要此模板中的供应商捆绑包,但 webpack 强制我添加它

我正在使用 webpack 5.18.0

谢谢您的帮助!

标签: javascriptwebpackvendorwebpack-5

解决方案


推荐阅读