vue.config.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const webpack = require("webpack");
  2. const path = require("path");
  3. const CompressionWebpackPlugin = require("compression-webpack-plugin");
  4. let env = process.env.NODE_ENV;
  5. module.exports = {
  6. // 如果是hash模式
  7. publicPath: env !== "development" ? "./" : "/",
  8. // 如果是history模式
  9. // publicPath: env !== "development" ? "/" : "/",
  10. // 静态资源目录 (js, css, img, fonts)
  11. assetsDir: "assets",
  12. //关键点在这 原来的 Compiler 换成了 runtimeCompiler
  13. runtimeCompiler: true,
  14. //设置打包之后是否打包.map文件
  15. productionSourceMap: env !== "development" ? false : true,
  16. // 输出文件目录
  17. outputDir: "dist",
  18. // 让样式找到源
  19. css: {
  20. sourceMap: true
  21. },
  22. devServer: {
  23. port: 8083,
  24. host: "0.0.0.0",
  25. hot: true,
  26. open: false,
  27. disableHostCheck: true,
  28. proxy: {
  29. "/api": {
  30. target: "127.0.0.1", //对应跨域的接口
  31. changeOrigin: true,
  32. ws: false,
  33. pathRewrite: {
  34. "^/api": ""
  35. }
  36. },
  37. '/restfull': {
  38. target: "http://192.168.0.238:8033",//"http://172.168.1.8:8075", // 报警服务
  39. changeOrigin: true, // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
  40. pathRewrite: { // 路径重写,
  41. '^/restfull': '' // 替换target中的请求地址,也就是说以后你在请求http://api.douban.com/v2/XXXXX这个地址的时候直接写成/api即可。
  42. }
  43. },
  44. }
  45. },
  46. chainWebpack: config => {
  47. config.resolve.alias.set("@", path.resolve(__dirname, "./src"));
  48. },
  49. configureWebpack: config => {
  50. if (env !== "development") {
  51. // 配置打包 压缩js
  52. config.plugins.push(
  53. new CompressionWebpackPlugin({
  54. algorithm: "gzip",
  55. test: /\.js$|\.html$|.\css/, //匹配文件名
  56. threshold: 10240, //对超过10k的数据压缩
  57. deleteOriginalAssets: false, //不删除源文件
  58. minRatio: 0.8
  59. })
  60. );
  61. }
  62. }
  63. };