vue.config.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. const path = require('path')
  2. const fs = require('fs')
  3. function resolve(dir) {
  4. return path.join(__dirname, dir)
  5. }
  6. const cdn = {
  7. css: [
  8. '//cdn-common.jianyu360.com/cdn/lib/v-charts/1.19.0/style.min.css'
  9. ],
  10. js: [
  11. '//cdn-common.jianyu360.com/cdn/lib/vue/2.7.16/vue.min.js',
  12. '//cdn-common.jianyu360.com/cdn/lib/vue-router/3.6.5/vue-router.min.js',
  13. '//cdn-common.jianyu360.com/cdn/lib/vuex/3.6.2/vuex.min.js',
  14. '//cdn-common.jianyu360.com/cdn/lib/axios/1.6.7/axios.min.js',
  15. '//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js',
  16. '//cdn-common.jianyu360.com/cdn/lib/echarts/4.8.0/echarts.min.js',
  17. '//cdn-common.jianyu360.com/cdn/lib/v-charts/1.19.0/index.min.js',
  18. '//cdn-common.jianyu360.com/cdn/lib/lodash/4.17.21/lodash.min.js',
  19. '//res.wx.qq.com/open/js/jweixin-1.6.0.js'
  20. ]
  21. }
  22. const externals = {
  23. vue: 'Vue',
  24. 'vue-router': 'VueRouter',
  25. vuex: 'Vuex',
  26. axios: 'axios',
  27. 'echarts': 'echarts',
  28. 'v-charts': 'VeIndex',
  29. 'lodash': '_',
  30. vant: 'vant',
  31. }
  32. let devServer = {
  33. proxy: { // 代理
  34. '/dev-api': {
  35. target: 'http://localhost:3333', //设置你调用的接口域名和端口号 别忘了加http
  36. ws: false, //如果要代理 websockets
  37. changeOrigin: true, //将主机标头的原点更改为目标URL
  38. pathRewrite: {
  39. '^/dev-api': ''
  40. }
  41. },
  42. '/salesLeads': {
  43. target: 'https://jybx2-webtest.jydev.jianyu360.com/',
  44. ws: false, //如果要代理 websockets
  45. changeOrigin: true, //将主机标头的原点更改为目标URL
  46. pathRewrite: {
  47. '^/salesLeads': '/salesLeads'
  48. }
  49. },
  50. '/filemanage': {
  51. // target: 'https://web-qmxtest.jydev.jianyu360.com',
  52. target: 'https://www.qmx.top',
  53. ws: false, //如果要代理 websockets
  54. changeOrigin: true, //将主机标头的原点更改为目标URL
  55. pathRewrite: {
  56. '^/filemanage': '/filemanage'
  57. }
  58. }
  59. // '/dev-api': {
  60. // target: 'http://localhost:3333', //设置你调用的接口域名和端口号 别忘了加http
  61. // ws: false, //如果要代理 websockets
  62. // changeOrigin: true, //将主机标头的原点更改为目标URL
  63. // pathRewrite: {
  64. // '^/dev-api': ''
  65. // },
  66. // },
  67. // '/service/public': {
  68. // target: 'http://localhost:3333', //设置你调用的接口域名和端口号 别忘了加http
  69. // ws: false, //如果要代理 websockets
  70. // changeOrigin: true, //将主机标头的原点更改为目标URL
  71. // pathRewrite: {
  72. // '^/service/public': ''
  73. // },
  74. // },
  75. // '/third-libs': {
  76. // target: 'http://localhost:3333', //设置你调用的接口域名和端口号 别忘了加http
  77. // ws: false, //如果要代理 websockets
  78. // changeOrigin: true, //将主机标头的原点更改为目标URL
  79. // pathRewrite: {
  80. // '^/third-libs': '/third-libs'
  81. // },
  82. // },
  83. // '/engine_libs': {
  84. // target: 'http://localhost:3333', //设置你调用的接口域名和端口号 别忘了加http
  85. // ws: false, //如果要代理 websockets
  86. // changeOrigin: true, //将主机标头的原点更改为目标URL
  87. // pathRewrite: {
  88. // '^/engine_libs': '/engine_libs'
  89. // },
  90. // }
  91. }
  92. }
  93. module.exports = {
  94. devServer: devServer,
  95. // 输出文件目录
  96. assetsDir: "static",
  97. outputDir: './service/public',
  98. // publicPath: "./service/public",
  99. publicPath: "./",
  100. // 修改 pages 入口
  101. pages: {
  102. index: {
  103. entry: 'client/main.js', // 入口
  104. template: 'public/engine-h5-long.html', // 模板
  105. filename: 'index.html', // 输出文件
  106. }
  107. },
  108. css: {
  109. loaderOptions: {
  110. scss: {
  111. sassOptions: {
  112. quietDeps: true,
  113. },
  114. additionalData: `@import "@client/common/styles/variables.scss";`
  115. },
  116. less: {
  117. lessOptions: {
  118. modifyVars: {
  119. hack: 'true; @import "@client/common/styles/vant.theme.less";'
  120. }
  121. }
  122. }
  123. // sass: {
  124. // // @/ 是 src/ 的别名
  125. // data: fs.readFileSync(path.resolve(__dirname, `./client/common/styles/variables.scss`), 'utf-8') // 公共变量文件注入
  126. // }
  127. }
  128. },
  129. // 扩展 webpack 配置
  130. chainWebpack: config => {
  131. if (process.env.NODE_ENV === 'production') {
  132. config.externals(externals)
  133. }
  134. // @ 默认指向 src 目录,这里要改成 examples
  135. // 另外也可以新增一个 ~ 指向 packages
  136. config.resolve.alias
  137. .set('@', path.resolve('client'))
  138. .set('@client', path.resolve('client'))
  139. .set('@plugins', path.resolve('plugins'))
  140. .set('@service', path.resolve('service'))
  141. config.module
  142. .rule('js')
  143. .include.add(/engine-template/).end()
  144. .include.add(/client/).end()
  145. .include.add(/common/).end()
  146. .use('babel')
  147. .loader('babel-loader')
  148. config.optimization.minimize(true)
  149. .minimizer('terser')
  150. .tap(options => {
  151. // 修改它的选项...
  152. return options
  153. })
  154. // 移除 prefetch 插件,当页面太多时,会导致太多无意义的请求
  155. // config.plugins.delete('prefetch')
  156. }
  157. }