如何使用 Webpack 2 获取数据属性内的图像?

How to get image that is within a data attrbute with Webpack 2?

我正在为我的 HTML 和标准 src 属性使用 .pug 模板,如下所示:

img(src=`../images/${image}`)

当我 运行 webpack -p 时,我的图像 src 中定义的任何图像都会被 Webpack 找到并放入我的 dist 目录中。这正是我希望发生的事情。

但是,我现在需要延迟加载我的图像,所以我想将对图像的引用放入 data-src 属性而不是标准 src,如下所示:

img(data-src=`../images/${image}` src='data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7')

运行 webpack -p 当我再次这样做时,没有抓取图像。

有什么方法可以让 Webpack 查看非 src 属性以意识到它需要这些图像作为生产构建的一部分?

好的。原来html-loader有个选项可以传入tag/attribute类型供loader解析通过,叫做attrs,就是这些配置的一个数组 .

我是这样实现的:

{
  test: /\.pug$/,
  use: [
    {
      loader: 'html-loader',
      options: {
        attrs: ['img:src', 'img:data-src', 'link:href']
      }
    },
    {
      loader: 'pug-html-loader',
      options: {
        pretty: true,
        exports: false
      }
    }
  ]
}

现在 运行 webpack -p 似乎可以获取这些图像。

希望这对某些人有所帮助。

选项仍然可以与 html-loader 一起使用。您可能需要改用它 https://webpack.js.org/plugins/loader-options-plugin/