Webpack4.X从入门到精通-plugin(二)
通过上一篇文章,我们明白了webpack
的两个配置参数入口与出口,webpack
会找到入口文件的地址,进去后一顿蹂躏,再通过你给的输出地址就把编译后的文件给你了。这篇文章接着去丰富webpack.config.js
的内容,说一个参数叫plugins
成都创新互联公司从2013年开始,先为港北等服务建站,港北等地企业,进行企业商务咨询服务。为港北企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
plugins
plugins
里面放的是插件,在webpack
里有各式各样的插件能够帮你完成任何构建的事情。只有你想不到的,没有它做不到的。并且全世界的小伙伴们都在给webpack
贡献开源的插件,所以插件的种类是非常丰富的。
插件能做什么
插件的作用在于提高开发效率,能够解放双手,让我们去做更多有意义的事情。一些很low的事就统统交给插件去完成。比如在上一篇文章里讲到当webpack
编译打包后,我们需要新建一个index.thml
,以及在页面里通过script
标签去引入生成的js文件,那这些傻瓜式的,浪费精力的事情就应该交给插件自动完成,这就是所谓的自动化。我们只需要关注功能如何实现、去做一些有意义的事件即可。
插件的难点不在于plugins
参数如何去用,而在于插件本身如何去用。因为每个插件的功能不一样,所需的配置参数也不同。要用这个插件需要按它的要求来写参数,所以没有一套统一的规格,这就要求大家善于去看插件的API,通过webpack官网或者github
都能找到插件说明。
html-webpack-plugin
下面就以这个html-webpack-plugin
插件为例,给大家演示插件的用法。这个插件的作用是用来自动生成html
页面,既可以生成单个页面又可以生成多个页面,并且在生成前你可以给它一堆的配置,它会按照你想要的生成方式去生成页面。
小试牛刀
第一步:安装
npm i html-webpack-plugin -D
第二步:在webpack.config.js
里引入模块
const HtmlWebpackPlugin=require('html-webpack-plugin');
第三步:在plugins
里new
一个
plugins:[
new HtmlWebpackPlugin()
]
此时webpack.config.js
的内容如下:
const path=require('path');
const HtmlWebpackPlugin=require('html-webpack-plugin');
module.exports={
entry:{
one:'./src/1.js',
two:'./src/2.js'
},
output:{
path:path.resolve(__dirname,'dist'),
filename:'[name].bundle.js'
},
plugins:[
new HtmlWebpackPlugin()
]
}
1.js
的内容如下:
console.log('这是第一个入口文件');
2.js
的内容如下
console.log('这是第二个入口文件!');
第四步:在终端里执行命令webpack
,如果不出意外的话是下面这样:
这个就代表已经成功了,在项目目录里会自动生成一个dist
目录,里面包含一个index.html
及一个one.bundle.js
和一个two.bundle.js
。打开index.html
的源码,你能看到已经自动添加了两个script
标签分别引入了两个js文件。
锋芒必露
接着要演示html-webpack-plugin
的配置参数,加上这些参数后,页面就会变得酸爽动人!
1、创建模板
在src
目录下创建一个template.html
做为模板文件,代码如下:
<%= htmlWebpackPlugin.options.title %>
这是自带的div
2、修改配置文件
在webpack.config.js
里修改plugins
如下:
plugins:[
new HtmlWebpackPlugin({
title:'陈学辉', /*这个值对应html里的title*/
template:'./src/template.html', //模板文件地址
filename:'test1.html', //文件名,默认为index.html(路径相对于output.path的值)
inject:true, //script标签的位置,true/body为在