Javascript 为什么我的src的Web包捆绑大小在包含和不包含外部时有所不同?

Javascript 为什么我的src的Web包捆绑大小在包含和不包含外部时有所不同?,javascript,webpack,babeljs,Javascript,Webpack,Babeljs,请注意,这是一个关于包中我的部分的大小发生变化的问题,而不是一个为什么包含外部库会使整个包变大的问题 我是webpack的新手,一直在寻找确保捆绑包大小最小化的方法,同时仍然通过babel和core js提供我想要的浏览器支持。我使用webpack和babel在各种设置下分析输出包的大小 当我通过webpack的externalsconfig将我正在使用的主要外部库从包中完全排除时,我的src目录的包大小缩小了约5k(总包大小约16k),这与我的预期相符,因为这是一个薄包装库。但是,当我不排除这

请注意,这是一个关于包中我的部分的大小发生变化的问题,而不是一个为什么包含外部库会使整个包变大的问题

我是webpack的新手,一直在寻找确保捆绑包大小最小化的方法,同时仍然通过babel和core js提供我想要的浏览器支持。我使用webpack和babel在各种设置下分析输出包的大小

当我通过webpack的
externals
config将我正在使用的主要外部库从包中完全排除时,我的
src
目录的包大小缩小了约5k(总包大小约16k),这与我的预期相符,因为这是一个薄包装库。但是,当我不排除这些库时,我的
src
目录的绑定大小会缩小到~31k(总绑定到~71k)

为什么包括外部部件会使非外部部件的捆绑尺寸膨胀这么大?请参阅下面分析仪的屏幕截图。代码位于下面,我的网页/巴别塔/浏览器配置也粘贴在下面

免责声明:这是我第一次尝试为npm编写/打包javascript库

const path=require('path');
const{CleanWebpackPlugin}=require('clean-webpack-plugin');
module.exports={
条目:'./src/zar.js',
模块:{
规则:[
{
测试:/\(js)$/,
排除:/node_模块/,
用法:['babel-loader']
}
]
},
优化:{
//错,,
},
外部:{
//“分析”:“分析”,
//“@analytics/storage utils”:“@analytics/storage utils”,
//“@analytics/google标记管理器”:“@analytics/google标记管理器”,
//“axios”:“axios”,
},
决心:{
扩展名:['*','.js']
},
插件:[
新的CleanWebPackagePlugin(),
],
输出:{
图书馆:“zar”,
图书馆目标:“umd”,
文件名:“zar.bundle.js”,
path:path.resolve(uu dirname,'dist'),
},
};
以及我的babel/浏览器配置的一些相关部分:

“浏览器列表”:[
“>0.1%,未死亡”
],
“巴别塔”:{
“预设”:[
[
“@babel/preset env”,
{
“useBuiltIns”:“用法”,
“corejs”:“3.6”,
“调试”:false
}
]
]
}
已排除外部(在网页包配置中未注释):

包括外部(注释如上所示):