webpack如何配置多入口多出口打包

webpack如何配置多入口多出口打包

因为项目如果复杂的时候,入口肯定不止一个,下面来看,如何配置多个入口文件
我们在src目录下面创建一个新的入口文件
about.js

export default (a,b)=>{
	return a+b+666
}

来看一下我的目录结构:
在这里插入图片描述

webpack.config.js
改变entry的配置:

entry:{ //定义入口文件
index:"./src/index.js",
about:"./src/about.js"
}

改变entry的配置:

//这个name是自带的,代表入口文件的名称例如上面定义的:index或者about

output:{
filename:’[name].js’,
path:path.resolve(__dirname,“dist”) //默认
}

这个时候我们执行打包命令:npm run dev

在这里插入图片描述
可以看到我们多入口打包成功了。并且都引入到一个默认模板index.html当中。

多出口打包

那么上面我面多入口已经完成了,但是打包后都插入到默认的index.html当中了,只有这一个出口,下面看如何制造多个出口。

首先多出口肯定不止一个 模板文件,所以我们要在index.html的同级目录新建一个出口文件为 about.html
在这里插入图片描述
接下来我们需要去调整一下webpack.config.json文件下的plugins配置,因为我们之前只是单出口如图:
在这里插入图片描述
那么现在我们多入口应该如何写呢,看代码:

	plugins:[//设置插件使用
		new HtmlWebpackPlugin({
			template:"./index.html",	//设置打包后的文件,插入到的模板html文件是哪个(以来的模板文件)
			filename:"index.html",		//输出文件的名称(打包后的html文件名,可以自己设置,最好不要变动)
			hot:true,					//自动刷新浏览器
			chunks:['index']			//代表指定的入口文件是哪个
		}),
		
		//那么同理我们有两个出口是不是要配置两次,像这样
		
		new HtmlWebpackPlugin({
			template:"./about.html",	//设置打包后的文件,插入到的模板html文件是哪个(以来的模板文件)
			filename:"about.html",		//输出文件的名称(打包后的html文件名,可以自己设置,最好不要变动)
			hot:true,					//自动刷新浏览器
			chunks:['about']			//代表指定的入口文件是哪个
		})
	]

下面我们执行 打包命令:npm run dev

在这里插入图片描述
至此,我们的多出口打包也完成了。但是在这之间,有一个问题,就是我们在配置多出口文件的时候,出现了重复代码,这对于许多有强迫症的程序员是不能接受,毕竟,如果我们有一个两个出口,可以这样配置,如果有几十甚至更多呢,那这样就会多出很多不必要的代码,由此,我们可以封装一下。

在这里插入图片描述

封装方法如下:
1.我们首先要把出口文件定义成一个数组,然后进行map循环,我们只要返回HtmlWebpackPlugin这样一个实例就可以,拿到当前的实例对象,chunkName然后通过ES6 语法的字符串模板将当前值作为一个变量,分别设置当前入口文件的每个属性,就可以了。

const Htmlplugin =["index","about"].map(chunkName=>{
	return new HtmlWebpackPlugin({
			template:`./${chunkName}.html`,	//设置打包后的文件,插入到的模板html文件是哪个(以来的模板文件)
			filename:`${chunkName}.html`,		//输出文件的名称(打包后的html文件名,可以自己设置,最好不要变动)
			chunks:[chunkName],		//代表指定的入口文件是哪个
		})
})

紧接着,我们需要把示例放在plugins里面进行应用,map循环后生成的新数组,所以需要把Htmlplugin 这个数组打开,放在plugins里面,也是使用ES6里面的扩展运算符 “…”进行数组的展开,就可以了。

	plugins:[//设置插件使用
		new CleanWebpackPlugin(),		//通过new去执行.作用:清空输出的目录
		...Htmlplugin
	]

执行打包命令:npm run dev

在这里插入图片描述
同样多出口打包也成功过了。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
webpack 多页面配置中,可以使用多个出口多个输出文件)来实现。每个页面对应一个出口,通过配置多个入口出口来生成对应的输出文件。 例如,下面是一个 webpack 多页面配置示例: ```javascript // webpack.config.js const path = require('path'); module.exports = { entry: { page1: './src/pages/page1/main.js', page2: './src/pages/page2/main.js' }, output: { filename: '[name].js', path: path.resolve(__dirname, 'dist') }, // 其他配置项... }; ``` 上述配置中,我们定义了两个入口文件 `page1` 和 `page2`,每个入口文件对应一个页面。通过 `[name].js` 的输出文件名模板,使得每个入口文件对应生成一个对应的输出文件。 每个页面的 HTML 文件需要手动创建,并引入对应的 JS 文件。例如,`src/pages/page1/index.html` 可以这样编写: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Page 1</title> </head> <body> <script src="page1.js"></script> </body> </html> ``` 这样配置后,在运行 `webpack` 命令打包构建时,会根据每个入口文件生成对应的输出文件到指定的输出路径(本例中为 `dist` 文件夹)。你需要手动创建对应的 HTML 文件,并在其中引入相应的 JS 文件。 注意,该配置仅是一个示例,实际项目中可能需要根据项目结构和需求进行相应的调整。另外,还可以使用插件如 HtmlWebpackPlugin 来自动生成多个 HTML 文件,并自动引入对应的 JS 文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

画不完的饼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值