vue.config.js 5.0 KB

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