美文网首页前端工程化
webpack 代码分割的两种方式

webpack 代码分割的两种方式

作者: 浅忆_0810 | 来源:发表于2021-06-29 23:00 被阅读0次

    1. 多入口打包

    适用于传统的多页应用程序,一个页面对应一个打包入口,公告部分单独提取

    const { CleanWebpackPlugin } = require('clean-webpack-plugin')
    const HtmlWebpackPlugin = require('html-webpack-plugin')
    
    module.exports = {
      mode: 'none',
      entry: {
        index: './src/index.js',
        album: './src/album.js'
      },
      output: {
        filename: '[name].bundle.js'
      },
        ...
      plugins: [
        new CleanWebpackPlugin(),
        new HtmlWebpackPlugin({
          title: 'Multi Entry',
          template: './src/index.html',
          filename: 'index.html',
          chunks: ['index']
        }),
        new HtmlWebpackPlugin({
          title: 'Multi Entry',
          template: './src/album.html',
          filename: 'album.html',
          chunks: ['album']
        })
      ]
    }
    
    

    1.1 提取公共模块

    const { CleanWebpackPlugin } = require('clean-webpack-plugin')
    const HtmlWebpackPlugin = require('html-webpack-plugin')
    
    module.exports = {
      mode: 'none',
      entry: {
        index: './src/index.js',
        album: './src/album.js'
      },
      output: {
        filename: '[name].bundle.js'
      },
      optimization: {
        splitChunks: {
          // 自动提取所有公共模块到单独 bundle
          chunks: 'all'
        }
      },
      ...
    }
    

    2. 动态导入

    按需加载,需要用到某个模块时,再加载这个模块,动态导入的模块会自动分包

    相关文章

      网友评论

        本文标题:webpack 代码分割的两种方式

        本文链接:https://www.haomeiwen.com/subject/sqzkultx.html