poi.config.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. const path = require('path')
  2. const _ = require('lodash')
  3. const SpriteLoaderPlugin = require('svg-sprite-loader/plugin')
  4. module.exports = {
  5. entry: 'client/index.js',
  6. dist: 'assets',
  7. staticFolder: 'client/static',
  8. filename: {
  9. js: 'js/[name].js',
  10. css: 'css/bundle.css',
  11. images: 'images/[name].[ext]',
  12. fonts: 'fonts/[name].[ext]',
  13. chunk: 'js/[name].chunk.js'
  14. },
  15. autoprefixer: {
  16. browsers: [
  17. 'last 6 Chrome major versions',
  18. 'last 6 Firefox major versions',
  19. 'last 4 Safari major versions',
  20. 'last 4 Edge major versions',
  21. 'last 3 iOS major versions',
  22. 'last 3 Android major versions',
  23. 'last 2 ChromeAndroid major versions',
  24. 'Explorer 11'
  25. ]
  26. },
  27. html: false,
  28. hash: false,
  29. sourceMap: true,
  30. extendWebpack (config) {
  31. // Vue - Default SCSS Imports
  32. config.module.rule('vue')
  33. .use('vue-loader')
  34. .tap(opts => {
  35. opts.loaders.scss.push({
  36. loader: 'sass-resources-loader',
  37. options: {
  38. resources: path.join(__dirname, './client/scss/global.scss')
  39. }
  40. })
  41. return opts
  42. })
  43. // SVG Loader
  44. config.module.rule('svg')
  45. .exclude.add(path.join(__dirname, './client/svg')).end()
  46. .use('file-loader')
  47. .tap(opts => {
  48. opts.name = '[name].[ext]'
  49. opts.outputPath = 'svg/'
  50. return opts
  51. })
  52. config.module.rule('svgSymbols')
  53. .include.add(path.join(__dirname, './client/svg')).end()
  54. .use('raw-loader')
  55. .loader('raw-loader')
  56. // config.module.rule('svg').uses.delete('file-loader')
  57. // config.module.rule('svg')
  58. // .use('svg-sprite-loader')
  59. // .loader('svg-sprite-loader', {
  60. // extract: true,
  61. // spriteFilename: 'svg/symbols.svg'
  62. // })
  63. // config.plugin('svg-sprite-loader')
  64. // .use(SpriteLoaderPlugin)
  65. // Vue with Compiler Alias
  66. config.resolve.alias.set('vue$', 'vue/dist/vue.common.js')
  67. },
  68. webpack (config) {
  69. return config
  70. }
  71. }