vue.config.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. const path = require('path');
  2. const envConfig = require('./src/config');
  3. function resolve(dir) {
  4. return path.join(__dirname, dir); // path.join(__dirname)设置绝对路径
  5. }
  6. const proxyAgent = {
  7. target: envConfig.baseApi,
  8. ws: true, // 代理的WebSockets
  9. changeOrigin: true, // 允许websockets跨域
  10. logLevel: 'debug',
  11. pathRewrite: {
  12. }
  13. }
  14. console.log(envConfig.readCard)
  15. module.exports = {
  16. publicPath: process.env.NODE_ENV === 'sit' ? '/sc-accessControlSystem' : '/',
  17. productionSourceMap: false,
  18. filenameHashing: false,
  19. chainWebpack: (config) => {
  20. // 配置别名
  21. config.resolve.alias
  22. .set('@', resolve('src'))
  23. .set('@assets', resolve('src/assets'))
  24. .set('@views', resolve('src/views'))
  25. .set('@components', resolve('src/components'))
  26. .set('@utils', resolve('src/utils'));
  27. // 配置style px->vm
  28. config.module
  29. .rule('vue')
  30. .test(/\.vue$/)
  31. .use('style-vw-loader')
  32. .loader('style-vw-loader')
  33. .options({
  34. viewportWidth: 1920 //传参
  35. });
  36. // // // 配置每次打包浏览器缓存文件名的随机性
  37. // const filename = path.posix.join('js', `${new Date().getTime()}_[name].js`);
  38. // config.mode('production').devtool(false).output.filename(filename).chunkFilename(filename);
  39. },
  40. // 配置全局样式变量
  41. css: {
  42. loaderOptions: {
  43. // sass: {
  44. // data: '@import "@/assets/styles/common/px2rem.scss";@import "@/assets/styles/common/mixins.scss";'
  45. // },
  46. // postcss: {
  47. // plugins: [
  48. // require('postcss-pxtorem')({
  49. // rootValue: 100, // 换算的基数
  50. // selectorBlackList: ['weui', 'mu'], // 忽略转换正则匹配项
  51. // propList: ['*']
  52. // })
  53. // ]
  54. // }
  55. // scss: generateLoaders('sass').concat({
  56. // loader: 'sass-resources-loader',
  57. // options: {
  58. // resources: path.relative(__dirname, '../src/assets/css/punlic-style.scss')
  59. // }
  60. // })
  61. }
  62. // extract: {
  63. // // 打包后css文件名称添加时间戳
  64. // filename: `css/[name].${new Date().getTime()}.css`,
  65. // chunkFilename: `css/chunk.[id].${new Date().getTime()}.css`
  66. // }
  67. },
  68. // configureWebpack: {
  69. // externals: {
  70. // vue: 'Vue',
  71. // 'vue-router': 'VueRouter',
  72. // vuex: 'Vuex',
  73. // 'element-ui': 'ELEMENT',
  74. // axios: 'axios',
  75. // lodash: '_',
  76. // dayjs: 'dayjs',
  77. // echarts: 'echarts'
  78. // }
  79. // },
  80. devServer: {
  81. host: '0.0.0.0', // can be overwritten by process.env.HOST
  82. port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
  83. https: false, // https:{type:Boolean}
  84. open: false, // 配置自动启动浏览器 open: 'Google Chrome'-默认启动谷歌
  85. // 配置多个代理
  86. proxy: {
  87. '/sc-user-auth': {
  88. target: envConfig.baseApi,
  89. ws: true, // 代理的WebSockets
  90. changeOrigin: true, // 允许websockets跨域
  91. pathRewrite: {
  92. // "^/sc-user-auth": ""
  93. }
  94. },
  95. '/sc-user-center': {
  96. target: envConfig.baseApi,
  97. ws: true, // 代理的WebSockets
  98. changeOrigin: true, // 允许websockets跨域
  99. logLevel: 'debug',
  100. pathRewrite: {
  101. // "^/sc-user-center": ""
  102. }
  103. },
  104. '/sc-community': {
  105. target: envConfig.baseApi,
  106. ws: true, // 代理的WebSockets
  107. changeOrigin: true, // 允许websockets跨域
  108. logLevel: 'debug',
  109. pathRewrite: {
  110. // "^/sc-community": ""
  111. }
  112. },
  113. '/sc-message': {
  114. target: envConfig.baseApi,
  115. ws: true, // 代理的WebSockets
  116. changeOrigin: true, // 允许websockets跨域
  117. logLevel: 'debug',
  118. pathRewrite: {
  119. // "^/sc-message": ""
  120. }
  121. },
  122. '/sc-charge': {
  123. target: envConfig.baseApi,
  124. ws: true, // 代理的WebSockets
  125. changeOrigin: true, // 允许websockets跨域
  126. logLevel: 'debug',
  127. pathRewrite: {
  128. // "^/sc-charge": ""
  129. }
  130. },
  131. '/operation-manager': {
  132. target: envConfig.baseApi,
  133. ws: true, // 代理的WebSockets
  134. changeOrigin: true, // 允许websockets跨域
  135. logLevel: 'debug',
  136. pathRewrite: {
  137. // "^/operation-manager": ""
  138. }
  139. },
  140. '/zoniot-water': {
  141. target: envConfig.baseApi,
  142. ws: true, // 代理的WebSockets
  143. changeOrigin: true, // 允许websockets跨域
  144. logLevel: 'debug',
  145. pathRewrite: {
  146. // "^/zoniot-water": ""
  147. }
  148. },
  149. '/card': {
  150. target: envConfig.readCard,
  151. ws: true, // 代理的WebSockets
  152. changeOrigin: true, // 允许websockets跨域
  153. logLevel: 'debug',
  154. pathRewrite: {
  155. // "^/zoniot-water": ""
  156. }
  157. },
  158. '/sc-gate-web': proxyAgent
  159. },
  160. overlay: {
  161. warnings: false,
  162. errors: false
  163. },
  164. },
  165. pluginOptions: {
  166. 'postcss-import': {},
  167. 'postcss-url': {},
  168. 'postcss-aspect-ratio-mini': {},
  169. 'postcss-write-svg': {
  170. utf8: false
  171. },
  172. 'postcss-cssnext': {},
  173. 'postcss-px-to-viewport': {
  174. viewportWidth: 1920, // 视窗的宽度,对应的是我们设计稿的宽度,移动端一般是750,如果是pc端那就是类似1920这样的尺寸
  175. viewportHeight: 1080, // 视窗的高度,移动端一般指定1334,也可以不配置
  176. unitPrecision: 3, // 指定`px`转换为视窗单位值的小数位数(很多时候无法整除)
  177. viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vw
  178. // selectorBlackList: ['.ignore', '.hairlines'], // 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名
  179. minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值
  180. mediaQuery: false // 允许在媒体查询中转换`px`
  181. },
  182. 'postcss-viewport-units': {},
  183. cssnano: {
  184. preset: 'default', // 设置成default将不会启用autoprefixer
  185. 'postcss-zindex': false
  186. }
  187. },
  188. lintOnSave: false
  189. };