vue.config.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const path = require('path')
  2. function resolve (dir){
  3. return path.join(__dirname,dir)
  4. }
  5. const WebpackBundleAnalyzer = require('webpack-bundle-analyzer');
  6. module.exports = {
  7. // 选项...
  8. publicPath: './',
  9. productionSourceMap: false,
  10. css: {
  11. extract: false,
  12. sourceMap: true,
  13. loaderOptions: {},
  14. },
  15. lintOnSave: false,
  16. devServer: {
  17. overlay: {
  18. warning: false,
  19. errors: false
  20. },
  21. disableHostCheck: true,
  22. },
  23. chainWebpack: (config) => {
  24. // 配置可视化打包结构构成
  25. if (process.env.use_analyzer) {
  26. config
  27. .plugin('webpack-bundle-analyzer')
  28. .use(WebpackBundleAnalyzer.BundleAnalyzerPlugin);
  29. }
  30. //配置 svg-sprite-loader
  31. // 第一步:让其他svg loader不要对src/icons进行操作
  32. config.module
  33. .rule('svg')
  34. .exclude.add(resolve('src/icons/svg'))//注意:路径要具体到存放的svg的路径下,不然会报错
  35. .end()
  36. // 第二步:使用svg-sprite-loader 对 src/icons下的svg进行操作
  37. config.module
  38. .rule('icons')
  39. .test(/\.svg$/)
  40. .include.add(resolve('src/icons/svg'))//注意:路径要具体到存放的svg的路径下,不然会报错
  41. .end()
  42. .use('svg-sprite-loader')
  43. .loader('svg-sprite-loader')
  44. //定义规则 使用时 <svg class="icon"> <use xlink:href="#icon-svg文件名"></use> </svg>
  45. .options({
  46. symbolId: 'icon-[name]'
  47. })
  48. .end()
  49. }
  50. }