Blame view

vue.config.js 5.33 KB
b89c8760   wangming   项目初始化
1
2
3
4
5
  'use strict'
  const path = require('path')
  const defaultSettings = require('./src/settings.js')
  
  function resolve(dir) {
93212c7d   yangzhi   配置修改
6
      return path.join(__dirname, dir)
b89c8760   wangming   项目初始化
7
8
9
10
11
12
13
14
15
16
17
18
19
  }
  
  const name = defaultSettings.title || '答题后台' // page title
  
  // If your port is set to 80,
  // use administrator privileges to execute the command line.
  // For example, Mac: sudo npm run
  // You can change the port by the following methods:
  // port = 9528 npm run dev OR npm run dev --port = 9528
  const port = process.env.port || process.env.npm_config_port || 9528 // dev port
  
  // All configuration item explanations can be find in https://cli.vuejs.org/config/
  module.exports = {
93212c7d   yangzhi   配置修改
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
      /**
       * You will need to set publicPath if you plan to deploy your site under a sub path,
       * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/,
       * then publicPath should be set to "/bar/".
       * In most cases please use '/' !!!
       * Detail: https://cli.vuejs.org/config/#publicpath
       */
      publicPath: '/',
      outputDir: 'dist',
      assetsDir: 'static',
      lintOnSave: process.env.NODE_ENV === 'development',
      productionSourceMap: false,
      devServer: {
          port: port,
          open: true,
          overlay: {
              warnings: false,
              errors: true
          },
          proxy: {
              '/development': {
f44f0d24   yangzhi   vue.config.js配置修改
41
42
                  target: `http://admin.7-stars.com.cn`, //后台服务地址
                  // target:'https://localhost:44399/',
c33c1243   周超   拉取王哥最新的
43
                  // target:'http://localhost:8009',
93212c7d   yangzhi   配置修改
44
45
46
47
48
49
                  changeOrigin: true,
                  pathRewrite: {
                      '^/development': ''
                  }
              },
              '/api': {
f44f0d24   yangzhi   vue.config.js配置修改
50
                  target: 'https://localhost:44399/',
cf176b8f   周超   3
51
52
  
                  // target: `http://admin.7-stars.com.cn/`, //后台服务地址
9af0636f   yangzhi   超哥牛批
53
                  // target: 'http://localhost:8877',
93212c7d   yangzhi   配置修改
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
                  changeOrigin: true,
                  pathRewrite: {}
              }
          },
      },
      configureWebpack: {
          // provide the app's title in webpack's name field, so that
          // it can be accessed in index.html to inject the correct title.
          name: name,
          resolve: {
              alias: {
                  '@': resolve('src')
              }
          }
      },
      chainWebpack(config) {
          // it can improve the speed of the first screen, it is recommended to turn on preload
          config.plugin('preload').tap(() => [{
              rel: 'preload',
              // to ignore runtime.js
              // https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171
              fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],
              include: 'initial'
          }])
b89c8760   wangming   项目初始化
78
  
93212c7d   yangzhi   配置修改
79
80
          // when there are many pages, it will cause too many meaningless requests
          config.plugins.delete('prefetch')
b89c8760   wangming   项目初始化
81
  
93212c7d   yangzhi   配置修改
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
          // set svg-sprite-loader
          config.module
              .rule('svg')
              .exclude.add(resolve('src/icons'))
              .end()
          config.module
              .rule('icons')
              .test(/\.svg$/)
              .include.add(resolve('src/icons'))
              .end()
              .use('svg-sprite-loader')
              .loader('svg-sprite-loader')
              .options({
                  symbolId: 'icon-[name]'
              })
              .end()
b89c8760   wangming   项目初始化
98
  
93212c7d   yangzhi   配置修改
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
          config
              .when(process.env.NODE_ENV !== 'development',
                  config => {
                      config
                          .plugin('ScriptExtHtmlWebpackPlugin')
                          .after('html')
                          .use('script-ext-html-webpack-plugin', [{
                              // `runtime` must same as runtimeChunk name. default is `runtime`
                              inline: /runtime\..*\.js$/
                          }])
                          .end()
                      config
                          .optimization.splitChunks({
                              chunks: 'all',
                              cacheGroups: {
                                  libs: {
                                      name: 'chunk-libs',
                                      test: /[\\/]node_modules[\\/]/,
                                      priority: 10,
                                      chunks: 'initial' // only package third parties that are initially dependent
                                  },
                                  elementUI: {
                                      name: 'chunk-elementUI', // split elementUI into a single package
                                      priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
                                      test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
                                  },
                                  commons: {
                                      name: 'chunk-commons',
                                      test: resolve('src/components'), // can customize your rules
                                      minChunks: 3, //  minimum common number
                                      priority: 5,
                                      reuseExistingChunk: true
                                  }
                              }
                          })
                          // https:// webpack.js.org/configuration/optimization/#optimizationruntimechunk
                      config.optimization.runtimeChunk('single')
                  }
              )
      }
  }