vue.config.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. module.exports = {
  2. publicPath: process.env.NODE_ENV === 'production' ? '/mobile/' : '/',
  3. outputDir: 'dist',
  4. devServer: {
  5. proxy: {
  6. '/mobile/api': {
  7. target: 'http://localhost:9099/',
  8. changeOrigin: true,
  9. logLevel: 'info',
  10. },
  11. },
  12. },
  13. pwa: {
  14. manifestOptions: {
  15. name: 'SGC Mobile',
  16. short_name: 'SGC Mobile',
  17. start_url: './',
  18. display: 'standalone', // standalone, fullscreen
  19. background_color: '#ed1c24',
  20. icons: [
  21. {
  22. sizes: '20x20',
  23. src: './img/icons/android-chrome-20x20.png',
  24. type: 'image/png',
  25. purpose: 'any',
  26. },
  27. {
  28. sizes: '29x29',
  29. src: './img/icons/android-chrome-29x29.png',
  30. type: 'image/png',
  31. purpose: 'any',
  32. },
  33. {
  34. sizes: '40x40',
  35. src: './img/icons/android-chrome-40x40.png',
  36. type: 'image/png',
  37. purpose: 'any',
  38. },
  39. {
  40. sizes: '76x76',
  41. src: './img/icons/android-chrome-76x76.png',
  42. type: 'image/png',
  43. purpose: 'any',
  44. },
  45. {
  46. sizes: '167x167',
  47. src: './img/icons/android-chrome-167x167.png',
  48. type: 'image/png',
  49. purpose: 'any',
  50. },
  51. {
  52. sizes: '192x192',
  53. src: './img/icons/android-chrome-192x192.png',
  54. type: 'image/png',
  55. purpose: 'any',
  56. },
  57. {
  58. sizes: '512x512',
  59. src: './img/icons/android-chrome-512x512.png',
  60. type: 'image/png',
  61. purpose: 'any',
  62. },
  63. {
  64. sizes: '192x192',
  65. src: './img/icons/android-chrome-maskable-192x192.png',
  66. purpose: 'maskable',
  67. type: 'image/png',
  68. },
  69. {
  70. sizes: '512x512',
  71. src: './img/icons/android-chrome-maskable-512x512.png',
  72. purpose: 'maskable',
  73. type: 'image/png',
  74. },
  75. ],
  76. shortcuts: [
  77. {
  78. name: 'Home',
  79. description: 'Home Page',
  80. url: '/#home',
  81. icons: [
  82. {
  83. sizes: '96x96',
  84. src: './img/icons/menu-home-96x96.png',
  85. type: 'image/png',
  86. purpose: 'any',
  87. },
  88. ],
  89. },
  90. {
  91. name: '하자처리',
  92. description: '하자처리',
  93. url: '/#/as/defting',
  94. icons: [
  95. {
  96. sizes: '96x96',
  97. src: './img/icons/menu-defting-96x96.png',
  98. type: 'image/png',
  99. purpose: 'any',
  100. },
  101. ],
  102. },
  103. {
  104. name: '하자완료조회',
  105. description: '하자완료조회',
  106. url: '/#/as/deftdone',
  107. icons: [
  108. {
  109. sizes: '96x96',
  110. src: './img/icons/menu-deftdone-96x96.png',
  111. type: 'image/png',
  112. purpose: 'any',
  113. },
  114. ],
  115. },
  116. {
  117. name: '하자작업지시',
  118. description: '하자작업지시',
  119. url: '/#/po/deftmang',
  120. icons: [
  121. {
  122. sizes: '96x96',
  123. src: './img/icons/menu-deftmang-96x96.png',
  124. type: 'image/png',
  125. purpose: 'any',
  126. },
  127. ],
  128. },
  129. {
  130. name: '하자조회및완료처리',
  131. description: '하자조회및완료처리',
  132. url: '/#/po/deftque',
  133. icons: [
  134. {
  135. sizes: '96x96',
  136. src: './img/icons/menu-deftque-96x96.png',
  137. type: 'image/png',
  138. purpose: 'any',
  139. },
  140. ],
  141. },
  142. {
  143. name: '회의실예약',
  144. description: '회의실예약',
  145. url: '/#/po/roomrev',
  146. icons: [
  147. {
  148. sizes: '96x96',
  149. src: './img/icons/menu-roomrev-96x96.png',
  150. type: 'image/png',
  151. purpose: 'any',
  152. },
  153. ],
  154. },
  155. {
  156. name: '회의실예약승인',
  157. description: '회의실예약승인',
  158. url: '/#/po/roomapp',
  159. icons: [
  160. {
  161. sizes: '96x96',
  162. src: './img/icons/menu-roomapp-96x96.png',
  163. type: 'image/png',
  164. purpose: 'any',
  165. },
  166. ],
  167. },
  168. ],
  169. orientation: 'portrait',
  170. },
  171. // msapplicationTileColor: '#000000',
  172. appleMobileWebAppTitle: 'SGC Mobile',
  173. appleMobileWebAppCapable: 'yes',
  174. appleMobileWebAppStatusBarStyle: 'black-translucent',
  175. iconPaths: {
  176. maskicon: null,
  177. favicon32: './img/icons/favicon-32x32.png',
  178. favicon16: './img/icons/favicon-16x16.png',
  179. appleTouchIcon: null,
  180. msTileImage: null,
  181. },
  182. // configure the workbox plugin
  183. workboxPluginMode: 'GenerateSW',
  184. },
  185. configureWebpack: {
  186. performance: {
  187. hints: false,
  188. },
  189. optimization: {
  190. splitChunks: {
  191. minSize: 10000,
  192. maxSize: 250000,
  193. },
  194. },
  195. },
  196. };