在 webpack 中使用 file-loader 和 html-loader 时,图像的 src attr 是 '[object Module]'

Nel*_*son 16 webpack webpack-html-loader webpack-file-loader

我正在从头开始使用 webpack4 做一个项目。但是当我尝试在 HTML 文件中显示图像时,我遇到了一个奇怪的问题:在 之后npm run build,图像标签的 src 被构建为<image src="[object Module]". HTML 部分是:

<img src="images/main_background.jpg">

webpack.config.js是:

   // ignore ...
   {
    test: /\.html$/,
    use: [
       {loader: 'html-loader'}
    ]
   },
   {
      test: /\.(jpeg|jpg|png)$/,
      use: [
        'file-loader'
      ]
  }


Run Code Online (Sandbox Code Playgroud)

以及这两个加载器的版本:

"file-loader": "^5.0.2",
"html-loader": "^0.5.5",
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚是什么问题...

MrS*_*lty 24

尝试向esModule: falsefile-loader添加选项,如下所示:

  ...
  {
    test: /\.(jpeg|jpg|png)$/,
    use: [
      loader: 'file-loader',
      options: {
        esModule: false
      }
    ]
  }
  ...
Run Code Online (Sandbox Code Playgroud)

这同样适用于 url-loader。

esModule 选项已在 4.3.0 版的 file-loader 中引入,在 5.0.0 中它已默认设置为 true,这可能是一个重大更改。

资料来源: