【webpack4.0】---webpack的基本使用(二)
一、什么是plugins
plugins可以使webpack在运行到某个时刻的时候,帮你做一些事情,类似于生命周期一样
plugins,它就是一个扩展器,它丰富了wepack本身,针对是loader结束后,webpack打包的整
个过程,它并不直接操作文件,而是基于事件机制工作,会监听webpack打包过程中的某些节点
二、html-webpack-plugin
1、安装
cnpminstallhtml-webpack-plugin-D
2、作用
会在打包结束后,自动生成一个html文件,并把打包生成的js自动引入到这个html中,同时还可以配合配置项的chunks实现多页面开发
3、基本使用
plugins:[
newHtmlWebpackPlugin({
filename:"index.html",
template:"./index.html",
inject:"head",
chunks:["app"],
minify:{
removeComments:true,
collapseWhitespace:true
}
})
]
filename:打包后生成html的文件名称
template:使用的模板
inject:JS在页面的哪个部分引入
chunks:指定引入的JS文件
minify:压缩html文件
removeComments:删除注释
collapseWhitespace:删除空格
favicon:图标
三、clean-webpack-plugin
1、安装
cnpminstallclean-webpack-plugin-D
2、作用
在我们每次打包的时候会重新生成一个dist文件,类似于先将上一次的dist文件删除,然后在重新生成一个dist目录
3、基本使用
constCleanWebpackPlugin=require("clean-webpack-plugin");
module.exports={
plugins:[
newCleanWebpackPlugin(["dist"])
]
}
参数是一个数组,值为需要删除的目录,在打包的时候会通过clean-webpack-plugin将dist目录删除
四、extract-text-webpack-plugin
1、安装
cnpminstall-Dextract-text-webpack-plugin@next
2、作用
该插件的主要是为了抽离css样式,防止将样式打包在js中引起页面样式加载错乱及JS文件过大等的现象
3、基本使用
constExtractTextPlugin=require("extract-text-webpack-plugin");
module.exports={
module:{
rules:[
{
test:/\.(css|scss)$/,
use: ExtractTextPlugin.extract({
//编译后用什么loader来提取css文件
fallback: "style-loader",
// 指需要什么样的loader去编译文件,这里由于源文件是.css所以选择css-loader
use:["css-loader","sass-loader"]
})
},
]
},
plugins:[
newExtractTextPlugin("css/[name].css")
//或者
newExtractTextWebpackPlugin({
filename: '[name].[hash:8].css',
allChunks: true
}),
]
}
五、HotModuleReplacementPlugin(问题)
1、安装
cnpm install webpack -D
2、作用
启用热模块更换,也称为HMR。
永远不要在生产环境( production )下启用 HMR
主要用来当代码产生变化后,可以在不刷新游览器的情况下对局部代码块进行替换更新。这在很多情况下都很有用,例如在处理弹出框时,使用HMR可以及时的看到变化,如果用刷新游览器的方式会回到初始页面。
3、基本使用
plugins: [
new webpack.HotModuleReplacementPlugin(), //热更新!
]
【webpack4.0】---webpack的基本使用(二)的更多相关文章
- [转]webpack4.0.1安装问题和webpack.config.js的配置变化
本文转自:https://blog.csdn.net/jiang7701037/article/details/79403637 The CLI moved into a separate packa ...
- 【webpack4.0】---webpack的基本使用(一)
一.初识webpack 1.什么是webpack? WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss ...
- webpack4.0.1安装问题和webpack.config.js的配置变化
The CLI moved into a separate package: webpack-cli. Please install 'webpack-cli' in addition to webp ...
- webpack工具学习 构建简单vue项目(不依赖vue-cli) webpack4.0
目的用webpack构建简单前端项目 1.npm init (npm init -y) 形成package.json 2.npm install --save-dev webpack 形成 n ...
- 史上最走心webpack4.0中级教程——配置之外你应该知道的事
<webpack4.0各个击破系列>适合不满足于只会配置webpack但一时间又看不懂源码的中级读者.我没法保证这个系列是最好的,但至少能保证每一篇博文都跟那些Ctrl+C和Ctrl+V的 ...
- webpack4.0各个击破(1)—— html部分
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
- webpack4.0各个击破(2)—— CSS篇
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
- webpack4.0各个击破(3)—— Assets篇
目录 一. Assets资源的基本处理需求 二. webpack处理引用资源 2.1 资源打标 2.2 引用优化 2.3 sprites雪碧图合成 2.4 图片压缩及其他 webpack作为前端最火的 ...
- webpack4.0各个击破(4)—— Javascript & splitChunk
目录 一. Js模块化开发 二. Js文件的一般打包需求 三. 使用webpack处理js文件 3.1 使用babel转换ES6+语法 3.2 脚本合并 3.3 公共模块识别 3.4 代码分割 3.5 ...
- webpack4.0各个击破(5)—— Module篇
webpack4.0各个击破(5)-- Module篇 webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决 ...
随机推荐
- c/c++实现CRC查表及算法
说明 CRC被广泛应用到各个领域.足见其厉害之处 本文介绍的是CRC查表法. 拷贝代码即可使用 CRC 的起始值 本来默认是0, 实际生产中遇到过,CRC初始值为0xFFFF, 故将其初始值以参数的形 ...
- 【LeetCode】1085. Sum of Digits in the Minimum Number 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 日期 题目地址:https://leetcode ...
- A. Watchmen(Codeforces 650A)
A. Watchmen time limit per test 3 seconds memory limit per test 256 megabytes input standard input o ...
- Challenging Common Assumptions in the Unsupervised Learning of Disentangled Representations
目录 概 主要内容 Locatello F., Bauer S., Lucic M., R"{a}tsch G., Gelly S. Sch"{o}lkopf and Bachem ...
- pytest之 fixture 实现机制
一.相同测试数据存放优化 在讲 fixture 实现机制之前,插入一段内容 上次有个小伙伴问我说,类似下面的用例代码情况,每条测试用例的数据都一样的,我们可以怎么进行优化吗? 当然是可以的 其实我们可 ...
- dart系列之:你的地盘你做主,使用Extension对类进行扩展
目录 简介 dart中extension的使用 API冲突 extention的实现 总结 简介 一般情况要扩展一个类,需要继承这个类,这是在大多数java或者其他面向对象语言中要做的事情. 但是有些 ...
- [黑科技]pb_ds库(G++)
一.hash(速度快的恐怖).http://codevs.cn/problem/1230/ 1 #include<stdio.h> 2 #include<ext/pb_ds/asso ...
- vue为什么要设计成异步队列渲染
异步队列渲染 上一篇文章是在vue2.0 中通过Object.defineProperty去拦截并监听数据变化的响应式原理,这篇文章将会沿着图谱继续深入探索,在依赖被通知变化了之后,会触发vue当中的 ...
- SpringCloud创建Eureka Client服务注册
1.说明 本文详细介绍微服务注册到Eureka的方法, 即Eureka Client注册到Eureka Server, 这里用任意一个Spring Cloud服务为例, 比如下面已经创建好的Confi ...
- js 简单版发布留言 案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...