How to load images through webpack when using HTMLWebpackPlugin?

后端 未结 4 792
礼貌的吻别
礼貌的吻别 2020-12-29 20:38

I am using HTMLWebpackPlugin and in my template I have an img tag:


If you notice, here I am using a r

相关标签:
4条回答
  • 2020-12-29 21:12

    You could use url-loader in your webpack config to add images below a certain limit encoded as base64 uri's in your final bundle and images above the limit as regular image tags (relative to the publicPath)

    module.rules.push({
      test: /\.(png|jp(e*)g|gif)$/,
      exclude: /node_modules/,
      use: [{ 
        loader: 'url-loader',
        options: {
          limit: 10000,
          publicPath: "/"
        }
      }]
    })
    
    0 讨论(0)
  • 2020-12-29 21:16

    Using html-loader with HTML webpack plugin worked for me.

    module: {
        rules: [
          {
             test: /\.(html)$/,
             use: ['html-loader']
          }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
          template: './src/index.html'
        })
      ]
    
    0 讨论(0)
  • 2020-12-29 21:16

    You should use the CopyWebpackPlugin.

    const CopyWebpackPlugin = require('copy-webpack-plugin');

    plugins:[
        ....
        new CopyWebpackPlugin([
             {from:'./src/assets/images',to:'images'} 
         ]),
        ....
    ]
    

    This is copy the src/assets/images to your `distfolder/images'.

    0 讨论(0)
  • 2020-12-29 21:18

    I'm not a webpack expert, but i got it to work by doing this:

    <img src="<%=require('./src/assets/logo.png')%>">
    

    Plugin config

    new HtmlWebpackPlugin({
        filename: 'index.html',
        template: 'index.html'
      }),
    

    According to the docs: https://github.com/jantimon/html-webpack-plugin/blob/master/docs/template-option.md

    By default (if you don't specify any loader in any way) a fallback lodash loader kicks in.

    The <%= %> signifies a lodash template

    Under the hood it is using a webpack child compilation which inherits all loaders from your main configuration.

    Calling require on your img path will then call the file loader.

    You may run into some path issues, but it should work.

    0 讨论(0)
提交回复
热议问题