WebpackでファイルローダーとHTMLローダーを使用する場合 画像のソース属性は「[オブジェクトモジュール]」のようになります


10

私はゼロからwebpack4でプロジェクトをやっています。しかし、htmlファイルで画像を表示しようとすると、有線の問題に直面しました:後npm run build。イメージタグのソースはとして構築され<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'
      ]
  }


そして、これら2つのローダーのバージョン:

"file-loader": "^5.0.2",
"html-loader": "^0.5.5",

何の問題かわからない...


HTMLファイルの画像をどのように表示しようとしていますか?
KLP、

ごめんなさい。私は私の質問を更新します。そして、私はこのようにしています:<img src = "./ static / images / demo.png">
Nelson

回答:


13

次のesModule: falseようにファイルローダーにオプションを追加してみてください:

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

同じことがurl-loaderにも当てはまります。

esModuleオプションは、バージョン4.3.0のファイルローダーに導入され、5.0.0ではデフォルトでtrueに設定されていますが、これは重大な変更になる可能性があります。

出典:


2
ああ!ありがとう!それは私のために働いています!
ネルソン

お役に立ててうれしいです:)
MrSegFaulty

0
{
    test: /\.(png|jpe?g|gif)$/i,
    loader: 'file-loader',
    options: {
        name: '[name][hash].[ext]',
        outputPath: 'images',
        esModule: false,
    },
},
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.