vue.config.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. const cdn = {
  2. css: [
  3. // '//unpkg.com/element-ui@2.10.1/lib/theme-chalk/index.css'
  4. ],
  5. jsdelivr: [
  6. '//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js',
  7. '//cdn.jsdelivr.net/npm/vue-router@3.1.5/dist/vue-router.min.js',
  8. '//cdn.jsdelivr.net/npm/vuex@3.4.0/dist/vuex.min.js',
  9. '//cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js',
  10. '//cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js',
  11. '//cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js',
  12. '//cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js'
  13. ],
  14. js: [
  15. '//cdn-common.jianyu360.cn/cdn/lib/vue/2.6.11/vue.min.js',
  16. '//cdn-common.jianyu360.cn/cdn/lib/vue-router/3.1.5/vue-router.min.js',
  17. '//cdn-common.jianyu360.cn/cdn/lib/vuex/3.4.0/vuex.min.js',
  18. '//cdn-common.jianyu360.cn/cdn/lib/axios/0.19.2/axios.min.js',
  19. '//cdn-common.jianyu360.cn/cdn/lib/echarts/4.8.0/echarts.min.js',
  20. '//cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js',
  21. '//cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js'
  22. ]
  23. }
  24. module.exports = {
  25. parallel: false,
  26. productionSourceMap: false,
  27. outputDir: 'page_big_pc',
  28. publicPath: process.env.VUE_APP_BASE_PUBLIC,
  29. lintOnSave: true,
  30. devServer: {
  31. port: '8080',
  32. disableHostCheck: true,
  33. proxy: {
  34. '^/bigmember': {
  35. target: 'http://web-jytest.jydev.jianyu360.com',
  36. changeOrigin: true,
  37. logLevel: 'debug',
  38. pathRewrite: {
  39. '^/bigmember': '/bigmember'
  40. }
  41. },
  42. '^/jypay': {
  43. target: 'http://web-jytest.jydev.jianyu360.com',
  44. changeOrigin: true,
  45. logLevel: 'debug'
  46. }
  47. }
  48. },
  49. css: {
  50. loaderOptions: {
  51. sass: {
  52. prependData: '@import "@/assets/style/_mixin.scss";@import "@/assets/style/_variables.scss";'
  53. }
  54. }
  55. },
  56. chainWebpack: config => {
  57. // single-spa
  58. if (!process.env.VUE_APP_ALONE) {
  59. config.devServer.set('inline', false)
  60. config.devServer.set('hot', true)
  61. if (process.env.NODE_ENV === 'production') {
  62. config.externals([
  63. 'vue',
  64. 'vue-router',
  65. 'vuex',
  66. 'axios',
  67. 'echarts',
  68. 'lodash',
  69. 'moment'
  70. ])
  71. config.plugin('html').tap(args => {
  72. // html中添加cdn
  73. args[0].cdn = cdn
  74. return args
  75. })
  76. } else {
  77. config.output.filename('js/[name].js')
  78. }
  79. }
  80. // 分析静态资源
  81. if (process.env.use_analyzer) {
  82. config
  83. .plugin('webpack-bundle-analyzer')
  84. .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
  85. }
  86. },
  87. filenameHashing: false
  88. }