plugin :
插件,对某个现有框架进行扩展
plugin 和 loader 区别
- loader:主要用于转换某些类型的模块,是一个转换器
- plugin:插件,是对webpack本身的扩展,是一个扩展器
plugin 使用
- 通过npm 安装需要的plugin ( 部分插件webpack已经内置,不必安装)
- 在webpack.config.js中的plugins进行配置
eg
1. BannerPlugin——添加版权的plugin
为打包的文件添加版权声明;内置
配置:
webpack.config.js:
const webpack = require('webpack')
module.exports = {
...
plugins:{
new webpack.BannerPlugin('最终版权归zfx所有')
}
}
会在bundle.js文件 头部添加版权信息
2. HtmlWebpackPlugin——打包html的plugin
将项目根目录下的index.html文件打包到dist文件夹中:
我们的index.html文件还是放在项目根目录下的,但真实发布时,发布的是dist文件夹下的文件,
但目前dist文件夹中没有index.html。
HtmlWebpackPlugin:
- 自动生成一个index.html文件(可以指定模块生成)
- 将打包的js文件,自动通过script标签插入到body中
安装与配置:
npm install html-webpack-plugin --save-dev
要删除之前在output中添加的publicPath属性
const HtmlWebpackPlugin = require('html-webpack-plugin') // 导入插件
...
plugins: [
new HtmlWebpackPlugin({
template: 'index.html' //模板
})
]
3. UglifyJsWebpackPlugin——压缩js的plugin
对打包的js文件进行压缩
安装与配置:
指定版本1.1.1 ,与CLI2保持一致
npm install uglifyjs-webpack-plugin@1.1.1 --save-dev
const uglifyjsPlugin = require('uglifyjs-webpack-plugin')
module.exports = {
...
plugins: [
new uglifyjsPlugin()
]
}
丑化后的js中,版权声明也没了