使用webpack加载svg url-loader返回js文件

时间:2016-01-12 21:19:28

标签: javascript svg webpack

我正在尝试使用webpack加载svg图像,如下所示:

const logo = require('./images/logo-white.svg')

请记住,这适用于我们所有其他图像,它们都不是svg。 无论我使用哪种加载器组合,当我加载它所放入的url或data-uri时,源代码如下所示:

module.exports = 'data-uri-that-is-the-actual-image'

1 个答案:

答案 0 :(得分:1)

我找到了一个“解决方案”,真的是一个可怕的黑客,但考虑到我还没有找到任何其他方式,这里是:

function webpackSvgFixer(svg) {
  // Remove data...base64, headers, leaving just the base64
  svg = /data.*base64,(.*)/.exec(svg)[1]; 
  // Convert base64 to string, then remove module.exports = and quotes
  return /module\.exports = "(.*)"/.exec(atob(svg))[1];
};
const logo = webpackSvgFixer(require('./images/logo-white.svg'))