Vue项目运行时提示svg-sprite-loader ExtractPluginMissingException?

我已经执行了:

> vue add svg-sprite
> npm install svgo svgo-loader --save-dev
> npm install svg-sprite-loader

运行时终端打印warning:

image.png

Module build failed (from ./node_modules/svg-sprite-loader/lib/loader.js):
ExtractPluginMissingException: svg-sprite-loader exception. svg-sprite-loader in extract mode requires the corresponding plugin    
at Object.loader (D:\master\vue-element-study\node_modules\svg-sprite-loader\lib\loader.js:47:13)

 @ ./src/assets/icons sync ^\.\/.*\.svg$
 @ ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/SvgIcon/SvgIcon.vue?vue&type=script&lang=js&
 @ ./src/components/SvgIcon/SvgIcon.vue?vue&type=script&lang=js&
 @ ./src/components/SvgIcon/SvgIcon.vue
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://192.168.1.10:8080&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js   

浏览器控制台报错:

image.png

vue.config.js 配置如下:

const path = require('path');
function resolve(dir) {
  return path.join(__dirname, dir)
}
module.exports = {
  baseUrl: "/",
  // 输出目录
  outputDir: 'dist',
  lintOnSave: true,
  // 是否为生产环境构建生成 source map?
  productionSourceMap: false,
  // alias 配置
  chainWebpack: (config) => {
    config.resolve.alias
      .set('@', resolve('src'))
      config.module.rules.delete("svg");
      config.module
        .rule('svg-smart')
        .test(/\.svg$/)
        .include
        .add(resolve('src/assets/icons'))
        .end()
        .use('svg-sprite-loader')
        .loader('svg-sprite-loader')
        .options({
          symbolId: '[name]'
        })
  }
}

求教如何解决?

阅读 14.1k
1 个回答

可能是你webpack配置中没有配置 svg-sprite-loader

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题