vue.config.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * 配置参考:
  3. * https://cli.vuejs.org/zh/config/
  4. */
  5. const url = 'http://127.0.0.1:9999'
  6. const CompressionWebpackPlugin = require('compression-webpack-plugin')
  7. const productionGzipExtensions = ['js', 'css']
  8. module.exports = {
  9. lintOnSave: true,
  10. productionSourceMap: false,
  11. chainWebpack: config => {
  12. const entry = config.entry('app')
  13. entry
  14. .add('babel-polyfill')
  15. .end()
  16. entry
  17. .add('classlist-polyfill')
  18. .end()
  19. },
  20. css: {
  21. // 忽略 CSS order 顺序警告
  22. extract: { ignoreOrder: true }
  23. },
  24. configureWebpack: (config) => {
  25. if (process.env.NODE_ENV === 'production') {
  26. // 仅在生产环境下启用该配置
  27. return {
  28. performance: {
  29. // 打包后最大文件大小限制
  30. maxAssetSize: 1024000
  31. },
  32. plugins: [
  33. new CompressionWebpackPlugin({
  34. filename: '[path].gz[query]',
  35. algorithm: 'gzip',
  36. test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
  37. threshold: 1024, // 只有大小大于该值的资源会被处理,当前配置为对于超过1k的数据进行处理,不足1k的可能会越压缩越大
  38. minRatio: 0.99, // 只有压缩率小于这个值的资源才会被处理
  39. deleteOriginalAssets: true // 删除原文件
  40. })
  41. ]
  42. }
  43. }
  44. },
  45. // 配置转发代理
  46. devServer: {
  47. disableHostCheck: true,
  48. port: 8080,
  49. proxy: {
  50. '/admin': {
  51. target: "http://127.0.0.1:9999",
  52. ws: false, // 需要websocket 开启
  53. pathRewrite: {
  54. '^/': '/'
  55. }
  56. },
  57. '/gen': {
  58. target: "http://127.0.0.1:5003",
  59. ws: false, // 需要websocket 开启
  60. pathRewrite: {
  61. '^/': '/'
  62. }
  63. },
  64. '/gk': {
  65. target: "http://127.0.0.1:9999/gk",
  66. ws: false, // 需要websocket 开启
  67. pathRewrite: {
  68. '^/': '/'
  69. }
  70. }
  71. }
  72. }
  73. }