vue.config.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const path = require('path');
  2. const autoprefixer = require('autoprefixer');
  3. const pxtorem = require('postcss-pxtorem');
  4. const CompressionWebpackPlugin = require('compression-webpack-plugin')
  5. function resolve(dir) {
  6. return path.join(__dirname, dir)
  7. }
  8. module.exports = {
  9. outputDir: 'dist',
  10. publicPath: process.env.NODE_ENV === 'production' ? '/' : '/',
  11. configureWebpack: config => {
  12. config.plugins.push(
  13. new CompressionWebpackPlugin({
  14. test: /\.js$|\.html$|\.css$/,
  15. // 超过4kb压缩
  16. threshold: 4096
  17. })
  18. )
  19. },
  20. chainWebpack: (config) => {
  21. config.resolve.alias
  22. .set('@$', resolve('src'))
  23. .set('@api', resolve('src/api'))
  24. .set('@assets', resolve('src/assets'))
  25. .set('@views', resolve('src/views'))
  26. },
  27. devServer: {
  28. port: 8082,
  29. proxy: {
  30. '/happy-boot': {
  31. target: 'http://yz.hap-job.com', //请求本地 需要happyjob后台项目
  32. ws: false,
  33. changeOrigin: true
  34. },
  35. }
  36. },
  37. css: {
  38. loaderOptions: {
  39. postcss: {
  40. plugins: [
  41. autoprefixer(),
  42. pxtorem({
  43. rootValue: 37.5,
  44. propList: ['*']
  45. })
  46. ]
  47. }
  48. }
  49. },
  50. lintOnSave: undefined
  51. };