vue.config.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. if (process.env.NODE_ENV === 'production') {
  13. config.plugins.push(
  14. new CompressionWebpackPlugin({
  15. test: /\.js$|\.html$|\.css$/,
  16. // 超过4kb压缩
  17. threshold: 4096
  18. })
  19. )
  20. }
  21. },
  22. chainWebpack: (config) => {
  23. config.resolve.alias
  24. .set('@$', resolve('src'))
  25. .set('@api', resolve('src/api'))
  26. .set('@assets', resolve('src/assets'))
  27. .set('@views', resolve('src/views'))
  28. },
  29. devServer: {
  30. port: 8082,
  31. proxy: {
  32. '/happy-boot': {
  33. target: 'http://yz.hap-job.com', //请求本地 需要happyjob后台项目
  34. ws: false,
  35. changeOrigin: true
  36. },
  37. }
  38. },
  39. css: {
  40. loaderOptions: {
  41. postcss: {
  42. plugins: [
  43. autoprefixer(),
  44. pxtorem({
  45. rootValue: 37.5,
  46. propList: ['*']
  47. })
  48. ]
  49. }
  50. }
  51. },
  52. lintOnSave: undefined
  53. };