vue.config.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. const { cdn, getProxyOfDomain, getProxyOfIp } = require('./config')
  2. module.exports = {
  3. parallel: false,
  4. productionSourceMap: false,
  5. outputDir: 'page_big_pc',
  6. publicPath: process.env.VUE_APP_BASE_PUBLIC,
  7. lintOnSave: true,
  8. devServer: {
  9. disableHostCheck: true,
  10. headers: {
  11. 'Access-Control-Allow-Origin': '*'
  12. },
  13. proxy: getProxyOfDomain('https://web2-jytest.jydev.jianyu360.com') || getProxyOfIp('http://127.0.0.1')
  14. },
  15. css: {
  16. loaderOptions: {
  17. sass: {
  18. prependData: '@import "@/assets/style/_mixin.scss";@import "@/assets/style/_variables.scss";'
  19. }
  20. }
  21. },
  22. chainWebpack: config => {
  23. // single-spa
  24. if (!process.env.VUE_APP_ALONE) {
  25. if (process.env.NODE_ENV === 'production') {
  26. // 生产环境配置
  27. config.externals([
  28. 'vue',
  29. 'vue-router',
  30. 'vuex',
  31. 'axios',
  32. 'lodash',
  33. 'moment'
  34. ])
  35. config.plugin('html').tap(args => {
  36. // html中添加cdn
  37. args[0].cdn = cdn
  38. return args
  39. })
  40. // config.output.filename('./js/[name].[chunkhash:8].js')
  41. config.output.filename = function (pathData) {
  42. return pathData.chunk.name === 'app' ? './js/[name].js' : './js/[name].[chunkhash:8].js';
  43. };
  44. config.output.chunkFilename('./js/[name].[chunkhash:8].js');
  45. // config.output.chunkFilename = function (pathData) {
  46. // console.log(JSON.stringify(pathData.chunk), '11')
  47. // return pathData.chunk.name === 'app' ? './js/[name].js' : './js/[name].[chunkhash:8].js';
  48. // };
  49. config.optimization.minimize(true)
  50. .minimizer('terser')
  51. .tap(args => {
  52. let { terserOptions } = args[0];
  53. terserOptions.compress.drop_console = true;
  54. terserOptions.compress.drop_debugger = true;
  55. return args
  56. });
  57. } else {
  58. config.devServer.set('inline', false)
  59. config.devServer.set('hot', true)
  60. config.output.filename('js/[name].js')
  61. }
  62. }
  63. // 分析静态资源
  64. if (process.env.use_analyzer) {
  65. config
  66. .plugin('webpack-bundle-analyzer')
  67. .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
  68. }
  69. },
  70. filenameHashing: false
  71. }