webpack打包9之多入口配置

我们之前完成的配置是单入口,只有一个入口。那么如果有多个入口我们要怎么配置呢?
1、在src下新建两个js文件
aa.js

const $ = require('jquery') //引入jquery 并赋值给$,方便之后使用jquery,直接用$就好
console.log($('div'))

const app = document.querySelector('#app');
const h1 = document.createElement('h1');
h1.innerHTML = 'hello world222'
app.appendChild(h1);

main.js

// // // alert('hello world!')
// require('./css/main.css');
// require('./css/index.css');
// require('./less/header.less');


// // require('./index.html')
// require('./aa.js');
const $ = require('jquery') //引入jquery 并赋值给$,方便之后使用jquery,直接用$就好
console.log($('div'))
// console.log('这是main.js')
// $(function () {
//     $('#app li:nth-child(odd)').css('color','red')
//     $('#app li:nth-child(even)').css('color','green')
// })
const app = document.querySelector('#app');
const h1 = document.createElement('h1');
h1.innerHTML = 'hello world'
app.appendChild(h1);

2、修改baseconfig文件中入口出口的配置

   //1、入口,从那个文件开始打包
    entry: { //多入口
        index:'./src/aa.js',
        main:'./src/main.js',
    },
    //2、出口对象
    output: {
        path: path.join(__dirname, '../dist'),//打包到哪里去,打包路径 注意输出路径必须是绝对路径
        filename: 'js/[name].bundles.js'//打包后生成的文件名

    },

3、yarn build打包
打包后发现,dist下js里面有两个包,分别是
在这里插入图片描述
4、多入口配置之后,提取公共模块,防止浪费资源
虽然分包配置成功,但是两个包占的内存非常大,因为他们两个都加载了jquery,我们可以优化一下。把公共模块提取出来打成单独的包。
从 webpack 4 开始,会根据你选择的 mode 来执行不同的优化,你可以通过 optimizaiton 节点进行覆盖配置。在 easywebpack 体系中,会进行进步配置简化。

  • runtimeChunk 默认文件名为 runtime
  • 通过 splitChunks 抽离的公共 js 文件名为 common
  • 通过splitChunks 抽离的公共 css 文件名为 common

在module.exports 中配置

module.exports = {
    //3、通过optimizaiton配置提取公共模块
    optimization: {
        splitChunks: {
            chunks: 'all',
        }
    },
}

再次打包,发现公共部分已经被提取打包
在这里插入图片描述
注意公共模块必须大于30kb才独立打包,jquery大小是87kb。所以独立打包了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值