webpack.config.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const {resolve} = require('path')
  2. const HtmlWebpackPlugin = require('html-webpack-plugin')
  3. /**
  4. *
  5. */
  6. module.exports = {
  7. entry: './src/index.js',
  8. output: {
  9. filename:'[name].js',
  10. path:resolve(__dirname,'build')
  11. },
  12. module:{
  13. rules:[
  14. {
  15. test:/\.css$/,
  16. use:['style-loader','css-loader']
  17. }
  18. ]
  19. },
  20. plugins: [
  21. new HtmlWebpackPlugin()
  22. ],
  23. mode: 'production',
  24. /**
  25. * 解析模块规则
  26. */
  27. resolve:{
  28. //配置解析路径别名 缺点:编辑器无提示
  29. alias:{
  30. $css: resolve(__dirname,'src/css')
  31. },
  32. //配置省略文件路径的后缀名
  33. extensions:[
  34. '.js','.json','.css'
  35. ],
  36. //告诉webpack解析模块位置
  37. modules:[
  38. resolve(__dirname,'../node_modules'),'node_modules'
  39. ]
  40. },
  41. optimization:{
  42. splitChunks:{
  43. chunks:'all',
  44. minSize: 30 * 1024, //分割的chunk最小位30kb
  45. maxSize: 0,//最大沒有限制
  46. minChunks: 1, //要提取的chunk最少被引用一次
  47. maxAsyncRequests: 5, // 按需加載時并行加載文件的最大數量
  48. maxInitialRequests: 3, // 入口js文件最大并行請求數量
  49. autumaticNameDelimiter: '~', // 名稱連接符
  50. name: true, // 可以使用命名規則
  51. cacheGroups:{ //分割chunk的組
  52. vendors:{
  53. test:/[\\/]node_modules[\\/]/,
  54. priority: -10
  55. },
  56. default:{
  57. minChunks: 2,
  58. priority: -20,
  59. reuseExistingChunk:true
  60. }
  61. }
  62. }
  63. }
  64. }