入口起点(entry point) 指示webpack应该使用哪个模块,来作为构建其内部 依赖图(dependency graph) 的开始,进入入口起点后,webpack会找出有哪些模块和库是入口起点(直接和间接)依赖的
它的默认值是 ./src/index.js
,但你可以通过在 webpack-configuration 中配置 entry 属性,来指定一个(或多个)不同的入口起点,单入口写法有两种方式
1 | /* webpack.config.js */ |
第二种写法就可以为打包出的 chunk 命名,这里的配置的名字就是 main
通常情况下,如果不考虑代码分割,那么一个entry对应就会打包出一个chunk,在多页面应用中,通常会需要多个bundle,因此入口也会配置多个,还有一种情况就是想要一次注入多个依赖文件,并且将它们的依赖关系绘制在 一个chunk 中时,也可以使用多入口的配置,配置示例如下
1 | /* webpack.config.js */ |
对于对象形式的语法,我们还可以添加 对象描述符,以便我们更详尽的描述所需的配置,配置项如下:
- dependOn:当前入口所依赖的入口。它们必须在该入口被加载前被加载
- filename:指定要输出的文件名称
- import:启动时需加载的模块
- library:指定library选项,为当前entry构建一个library
- runtime:运行时chunk 的名字,如果设置了,就会创建一个新的运行时chunk,在 webpack 5.43.0 之后可将其设为 false 以避免一个新的运行时chunk
- publicPath:当该入口的输出文件在浏览器中被引用时,为它们指定一个公共URL地址
示例配置如下:
1 | module.exports = { |
需要注意 runtime 和 dependOn 不应在同一个入口上同时使用,并且确保 runtime 不能与 已存在的入口名称 重名
结语
入口entry是webpack打包项目的起点,因此是一个十分重要的概念,往往单入口或者多入口的选择会很大程度影响项目的性能,因此还是很有必要把这个概念吃透的,好啦,完结,撒花~