Webpack 代码分离

本文详细介绍了Webpack中的代码分离技术,包括通过多个入口、防止重复和动态导入三种方式。通过实例展示了如何配置Webpack来优化代码加载,避免重复模块,并利用CommonsChunkPlugin和splitChunks解决实际问题。最后,探讨了动态导入的使用及其与async函数的结合。
摘要由CSDN通过智能技术生成

代码分离

代码分离是 webpack 中最引人注目的特性之一。

代码分离能把代码分离到不同的 bundle 中,然后可以按需加载或并行加载这些文件。代码分离可以用于获取更小的 bundle,以及控制资源加载优先级,如果使用合理,会极大影提高项目的性能。

代码分离的三种方法:

  • 多个入口:配置多个入口(entry),手动分离代码。
  • 防止重复:使用 CommonsChunkPlugin 去重、提取公共模块。
  • 动态导入:通过模块的内联函数调用来分离代码。

多个入口

配置多个入口是最简单、最直观的分离代码的方式。不过,这种方式手动配置较多,并有一些陷阱,我们将会解决这些问题。

src/index.js 文件,内容如下:

import _ from 'lodash';

function component() {
    var element = document.createElement('div');
    element.innerHTML = _.join(['Hello', 'webpack'], ' ');
    return element;
}

document.body.appendChild(component());

新建 src/another-module.js 文件,内容如下:

import _ from 'lodash';

console.log(
  _.join(['Another', 'module', 'loaded!'], ' ')
);

确保 package.json 文件中,存在下面的 npm script 内容:

"dev": "webpack --mode development  --config webpack.config.js"

修改 webpack.config.js 文件,以便配置多个入口(entry):

const path = require('path');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const HTMLWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: {
        index: './src/index.js',
        vendor: './src/another-module.js'
    },
    plugins: [
        new HTMLWebpackPlugin({
            title: 'Code Splitting--代码分离'
        }),
        new CleanWebpackPlugin(['dist'])
    ],
    output: {
        filename: '[name].bundle.js',
        path: path.resolve(__dirname, 'dist')
    }
};

打开终端,切换到项目目录,运行命令:

npm run dev

这将生成如

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值