Webpack打包css文件的背景图路径错误以及多生成了图片

module.exports = {
    entry:'.src/index.js',
    output:{
        filename:'main.js',
        path:path.resolve(__dirname,'dist')
    },
    module:{
        rules:[
            {
                test:/\.webp$/,
                use:[{
                    loader:'file-loader',
                    options:{
                        name:'image/[name].[hash:4].[ext]'
                    }
                }]
            }
        ]
    }
}

还没有打包前

打包后:

在图片文件加外多生成了一个图片文件,这不符合我们的预期,

module.exports = {
    entry:'.src/index.js',
    output:{
        filename:'main.js',
        path:path.resolve(__dirname,'dist')
    },
    module:{
        rules:[
             {
        test:/\.(jpe?g|png|gif|webp)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              esModule: false,//file-loader默认使用es6模块解析,如果使用es6的模块解析,html中图片的路径会不对,关闭es6模块解析开启commonjs模块解析
              name: 'images/[name].[hash:6].[ext]',
            }
          }
        ],
        type: 'javascript/auto'//这个属性如果没有设置,则会生成两张图片(如果你的页面只引入了一张图片)
      }
        ]
    }
}

 只要在options里添加一个属性esModule:false和在rules对象中添加type:'javascript/auto'就不会出现这种情况了,这两个属性的作用在代码的注释中有写到。

在进行一次打包后,就不会有问题了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值