| | |
| | | const path = require('path') |
| | | const defaultSettings = require('./src/settings.js') |
| | | const webpack = require('webpack') |
| | | |
| | | function resolve(dir) { |
| | | return path.join(__dirname, dir) |
| | | } |
| | |
| | | // } |
| | | // } |
| | | // }, |
| | | transpileDependencies: ['screenfull'], |
| | | productionSourceMap: false, |
| | | devServer: { |
| | | port: port, |
| | |
| | | jQuery: 'jquery', |
| | | $: 'jquery' |
| | | }) |
| | | ] |
| | | ], |
| | | // module: { |
| | | // rules: [ |
| | | // { |
| | | // test: /.vue$/, |
| | | // loader: 'vue-loader' |
| | | // } |
| | | // ] |
| | | // } |
| | | }, |
| | | chainWebpack(config) { |
| | | // it can improve the speed of the first screen, it is recommended to turn on preload |
| | |
| | | .plugin('ScriptExtHtmlWebpackPlugin') |
| | | .after('html') |
| | | .use('script-ext-html-webpack-plugin', [{ |
| | | // `runtime` must same as runtimeChunk name. default is `runtime` |
| | | // `runtime` must same as runtimeChunk name. default is `runtime` |
| | | inline: /runtime\..*\.js$/ |
| | | }]) |
| | | .end() |
| | | config |
| | | .optimization.splitChunks({ |
| | | chunks: 'all', |
| | | cacheGroups: { |
| | | libs: { |
| | | name: 'chunk-libs', |
| | | test: /[\\/]node_modules[\\/]/, |
| | | priority: 10, |
| | | chunks: 'initial' // only package third parties that are initially dependent |
| | | }, |
| | | elementUI: { |
| | | name: 'chunk-elementUI', // split elementUI into a single package |
| | | priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app |
| | | test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm |
| | | }, |
| | | commons: { |
| | | name: 'chunk-commons', |
| | | test: resolve('src/components'), // can customize your rules |
| | | minChunks: 3, // minimum common number |
| | | priority: 5, |
| | | reuseExistingChunk: true |
| | | } |
| | | chunks: 'all', |
| | | cacheGroups: { |
| | | libs: { |
| | | name: 'chunk-libs', |
| | | test: /[\\/]node_modules[\\/]/, |
| | | priority: 10, |
| | | chunks: 'initial' // only package third parties that are initially dependent |
| | | }, |
| | | elementUI: { |
| | | name: 'chunk-elementUI', // split elementUI into a single package |
| | | priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app |
| | | test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm |
| | | }, |
| | | commons: { |
| | | name: 'chunk-commons', |
| | | test: resolve('src/components'), // can customize your rules |
| | | minChunks: 3, // minimum common number |
| | | priority: 5, |
| | | reuseExistingChunk: true |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | // https:// webpack.js.org/configuration/optimization/#optimizationruntimechunk |
| | | config.optimization.runtimeChunk('single') |
| | | } |