插件是用来拓展webpack功能的。
1、比如BannerPlugin
通过这个插件,打包后的JS文件都显示如下:
2、再比如HtmlWebpackPlugin,会依据一个简单的index.html模板,生成一个自动引用你打包后的JS文件的index.html,这在每次生成的JS文件名称不同时非常有用。(就不用手动修改引用路径了)类似于一个模板引擎插件。
3、cleanWebPackPlugin会自动删除上次的打包文件。(不然每次打包出的文件名不一样,所以dist下的文件会越来越多)
4、Hot Module Reqplacement(HMR)也是webpack里很有用的一个插件,它允许你在修改组件代码后,自动刷新实时预览修改后的效果。
在webpack中实现HMR也很简单,只需要做两项配置
- 在webpack配置文件中添加HMR插件;
- 在Webpack Dev Server中添加“hot”参数;
5、此外还有一些压缩JS代码(UglifyJsPlugin)、分离CSS和JS文件(ExtractTextPlugin)内置的优化类插件。
1 | plugins: [ |
6、webpack-dev-server:每当修改了源代码, webpack会自动进行项目的打包和构建。
webpack-dev-server会启动一个实时打包的http服务器,main.js是在根目录的内存中,index.html直接引用main.js即可。
在webpack.config.js配置文件中,可以通过devServer节点对webpack-dev-server插件进行更多的配置。
1 | /* |
7、通过插件管理输出
(1)HtmlWebpackPlugin用于生成dist/index.html,并保证index.html正确引入打包后的js文件,使用方法:
1 | npm install --save-dev html-webpack-plugin |
(2)清理/dist文件夹
1 | output: { |
(3)(仅做了解)webpack 通过 manifest,可以追踪所有模块到输出 bundle 之间的映射。如果你想要知道如何以其他方式来控制 webpack 输出,了解 manifest 是个好的开始。通过 webpackManifestPlugin 插件,可以将 manifest 数据提取为一个 json 文件以供使用。