Webpack--Plugins

Plugins(插件)

 扩展 webpack 本身的一些功能,它们会运行在各种模块解析完成以后的打包编译阶段,比如对解析后的模块文件进行压缩等
 插件是 webpack 的支柱功能。插件目的在于解决 loader 无法实现的其他事。

1.HtmlWebpackPlugin

 作用:在打包结束后,⾃动生成⼀个 html ⽂文件,并把打包生成的 js 模块引⼊到该 html
 安装:npm install --save-dev html-webpack-plugin
 使用:1.在webpack.config.js文件中使用require语句引入
    2.在plugins中配置信息
 配置信息:
  1.filename:生成的html文件名称,默认是 index.html
  2.template:html模板文件路径
  3.title:⽤来生成⻚面的 title 元素
  4.inject: true | 'head' | 'body' | false,注⼊所有的资源到特定的 template 或者 templateContent 中,如果设置为 true 或者 body,所有的 javascript 资源将被放置到 body 元素的底部,'head' 将放置到 head 元素中
  5.favicon: 添加特定的 favicon 路径到输出的 HTML 文件中
  6.minify: {} | false, 传递 html-minifier 选项给 minify 输出
  7.hash: true | false,如果为 true,将添加 webpack 编译生成的 hash 到所有包含的脚本和 CSS ⽂件,对于解除 cache 很有用
  cache: true | false,如果为 true,这是默认值,仅在文件修改之后才会发布文件
  showErrors: true | false,如果为 true,这是默认值,错误信息会写入到 HTML ⻚面中
  8.chunks: 允许只添加某些块 (⽐如,仅 unit test 块)
  9.chunksSortMode: 允许控制块在添加到⻚面之前的排序方式,⽀持的值:'none' | 'default' |{function}-default:'auto'
  10.excludeChunks: 允许跳过某些块,(⽐如,跳过单元测试的块)
在这里插入图片描述
html 模板中,可以通过 <%=htmlWebpackPlugin.options.XXX%> 的方式获取配置的值
在这里插入图片描述

2.clean-webpack-plugin

 作用:在每次构建前清理 /dist 文件夹
 安装:npm install --save-dev clean-webpack-plugin
 使用:1.在webpack.config.js文件中使用require语句引入
    2.在plugins中配置信息
在这里插入图片描述

3.mini-css-extract-plugin

 作用:提取 CSS 到一个单独的文件中
 安装:npm install --save-dev mini-css-extract-plugin
 使用:1.在webpack.config.js文件中使用require语句引入
    const MiniCssExtractPlugin = require('mini-css-extract-plugin');
    2.与css-loader配合使用,代替html-loader
    3.在plugins中配置信息
在这里插入图片描述
在这里插入图片描述

4.sourceMap

 我们实际运行在浏览器的代码是通过 webpack 打包合并甚至是压缩混淆过的代码,所生成的代码并不利于我们的调试和错误定位,我们可以通过 sourceMap 来解决这个问题,sourceMap 本质是一个记录了编译后代码与源代码的映射关系的文件,我们可以通过 webpackdevtool 选项来开启 sourceMap
 使用:直接在webpack.config.js中配置即可
在这里插入图片描述 编译后会为每一个编译文件生成一个对应的 .map 文件,同时在编译文件中添加一段对应的 map 文件引入代码
 同时,现代浏览器都能够识别 sourceMap 文件,如 chrome,会在 Sources 面板中显示根据编译文件与对应的 map 文件定位到源文件中,有利于我们的调试和错误定位
在这里插入图片描述

5.webpackDevServer

 每次的代码修改都需要重新编译打包,刷新浏览器,特别麻烦,我们可以通过安装 webpackDevServer 来改善这方面的体验
 作用:自动刷新页面
 安装:npm install --save-dev webpack-dev-server
 启动:npx webpack-dev-server
    或在package.json中添加scripts,然后npm run server
在这里插入图片描述
 使用:修改webpack.config.js
在这里插入图片描述

6.Proxy

 作用:WebpackDevServer 内置了一个代理服务,通过内置代理就可以把我们的跨域请求转发目标服务器上(WebpackDevServer 内置的代理发送的请求属于后端 - node,不受同源策略限制)
 使用:在webpack.config.js下的devServer中配置proxy
在这里插入图片描述
 后端路由配置:
在这里插入图片描述
 前端代码发送ajax请求:
在这里插入图片描述
 通过 proxy 设置,当我们在当前 WebpackDevServer 环境下发送以 /api 开头的请求都会被转发到 http://localhost:8787 目标服务器下

7.Hot Module Replacement

 作用:局部(模块)更新,也就是不刷新页面,只更新变化的部分
 使用:在webpack.config.js中的devServer进行配置hothotOnly
在这里插入图片描述
 开启 HMR 以后,当代码发生变化,webpack 即会进行编译,并通过 websocket 通知客户端(浏览器),我们需要监听处理来自 webpack 的通知,然后通过 HMR 提供的 API 来完成我们的局部更新逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值