北京经济技术开发区经开区虚拟城市项目-【前端】-Web
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
'use strict'
// Template version: 1.3.1
// see http://vuejs-templates.github.io/webpack for documentation.
 
const path = require('path')
 
module.exports = {
  dev: {
 
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
 
    // Various Dev Server settings
    host: '0.0.0.0', // can be overwritten by process.env.HOST
    port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
    autoOpenBrowser: false,
    errorOverlay: true,
    notifyOnErrors: true,
    poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
    proxyTable: {
      // 这里配置 '/api' 就等价于 target , 你在链接里访问 /api === http://localhost:54321
 
      '/api': { // 请求的代称,写在Axios里的BaseUrl 
        target: 'http://localhost:8088/spring', // 真实请求的URL 后台接口域名
        ws: true, //  //如果要代理 websockets,配置这个参数
        secure: false,  // 如果是https接口,需要配置这个参数
        changeOrigin: true, // 允许跨域
        pathRewrite: { //替换,通配/api的替换成对应字符
          /* 重写路径,
              当我们在浏览器中看到请求的地址为:http://localhost:8080/api/core/getData/userInfo 时
              实际上访问的地址是 http://localhost:8088/spring/core/getData/userInfo,
              因为重写了/api
          */
          '^/api': ''        //当你的接口中没有/api字眼时,采用这种,直接替换成空即可
          // '^/api': '/api'   当你的接口中刚好有/api 时,采用这种方式
        }
      },
      '/api2': {
        target: 'http://10.10.4.121:8070',
        // secure: true, // 如果是 https ,需要开启这个选项
        changeOrigin: true, // 是否是跨域请求?肯定是啊,不跨域就没有必要配置这个proxyTable了.
        pathRewrite: { // 重写路径  例如浏览器请求地址http://localhost:12345/xxx,实际请求的是你代理的地址:http:xxx/11111
          // 这里是追加链接,比如真是接口里包含了 /api,就需要这样配置.
          '^/api': '/api', // 和下边两种写法,因人而异根据需求。
          // 等价于    /api + /api  ==  http://localhost:54321/api
          // 如果写为 '^/api' : '/'
          // 等价于   /api + /  ==  http://localhost:54321/
          // 这里的 /api ==  http://localhost:54321
        }
        // 首先,在ProxyTable模块中设置了‘/api’,target中设置服务器地址,也就是接口的开头那段地址,例如http://localhost:54321,
        // 然后我们在调用接口的时候,就可以全局使用/api,这时候/api的作用就相当于http://localhost:54321,
        // 比如接口的地址是http://localhost:54321/api/json.data,我们就可以使用/api/json.data
 
        // 那pathRewrite是用来干嘛的呢,这里的作用,相当于是替代/api,
        // 如果接口中是没有api的,那就直接置空,
        // 如果接口中有api,那就得写成{^/api:/api},可以理解为一个重定向或者重新赋值的功能
 
 
      }
    },
 
    /**
     * Source Maps
     */
 
    // https://webpack.js.org/configuration/devtool/#development
    devtool: 'cheap-module-eval-source-map',
    // If you have problems debugging vue-files in devtools,
    // set this to false - it *may* help
    // https://vue-loader.vuejs.org/en/options.html#cachebusting
    cacheBusting: true,
    cssSourceMap: true,
 
  },
 
  build: {
    // Template for index.html
    index: path.resolve(__dirname, '../SWZJXT/index.html'),
 
    // Paths
    assetsRoot: path.resolve(__dirname, '../SWZJXT'),
    assetsSubDirectory: './static',
    assetsPublicPath: './',
 
    /**
     * Source Maps
     */
 
 
 
    productionSourceMap: true,//浏览器源代码可以看到
    // productionSourceMap: false,
    // https://webpack.js.org/configuration/devtool/#production
    devtool: '#source-map',
 
    // Gzip off by default as many popular static hosts such as
    // Surge or Netlify already gzip all static assets for you.
    // Before setting to `true`, make sure to:
    // npm install --save-dev compression-webpack-plugin
    productionGzip: false,
    productionGzipExtensions: ['js', 'css'],
 
    // Run the build command with an extra argument to
    // View the bundle analyzer report after build finishes:
    // `npm run build --report`
    // Set to `true` or `false` to always turn it on or off
    bundleAnalyzerReport: process.env.npm_config_report
  }
}