记录一次让人崩溃的问题 - svg-sprite-loader

250 阅读1分钟
  1. 首先常规操作npm install svg-sprite-loader -D
  2. 但是这里安装的svg-sprite-loader界面上报错,有可能是svg-sprite-loader不适配
  3. 如果需要svgo-loader可以加上,如果本上得到的icon就比较规范可以不用引入这个loader,这个loader比较好用的操作是可以重置所有svg的fill,
  4. 在webpack.config.js里面去配置如下代码
 {
  test: /\.svg$/,
  loader: 'svg-sprite-loader',
  include: path.resolve('src/assets/icons'),
  options: {
    symbolId: 'icon-[name]'
  }
},

这个配置有一个关键节点,path.resolve如果一旦配错则不会显示图片,最终找到的问题是在这个位置,令人吐血
5. 创建上下文

const requireAll = (requireContext: any) => {
  return requireContext.keys().map(requireContext);
};

const req = require.context("../../assets/icons/svg", true, /.svg$/);
requireAll(req);

export { }
  1. 这里创建的上下文需要在主应用入口再引入一遍
  2. 至此,自定义svg的过程全局结束