Webpack 多html入口、devServer、热更新配置
2024-10-19 08:26:21
一、clean-webpack-plugin:
在每次生成dist目录前,先删除本地的dist文件(每次自动删除太麻烦)
1、安装clean-webpack-plugin npm/cnpm i clean-webpack-plugin --save -dev
2、在我们的webpack.config.js文件中引入
const cleanWebpackPlugin=require('clean-webpack-plugin');
然后在plugs中进行配置
plugins:[
new CleanWebpackPlugin(['dist']), //传入数组,指定要删除的目录
]
二、HotModuleReplacementPlugin
启用[热替换模块(Hot Module Replacement)],也被称为 HMR。
永远不要在生产环境(production)下启用 HMR
基本用法(Basic Usage)
启用 HMR 非常简单,在大多数情况下也不需要设置选项。
new webpack.HotModuleReplacementPlugin({ // Options...})
选项(Options)
包含如下选项:
- multiStep (boolean):设置为true时,插件会分成两步构建文件。首先编译热加载 chunks,之后再编译剩余的通常的资源。
- fullBuildTimeout (number):当 multiStep 启用时,表示两步构建之间的延时。
- requestTimeout (number):下载 manifest 的延时(webpack 3.0.0 后的版本支持)。
这些选项属于实验性内容,因此以后可能会被弃用。就如同上文所说的那样,这些选项通常情况下都是没有必要设置的,仅仅是设置一下 new webpack.HotModuleReplacementPlugin() 在大部分情况下就足够了。
webpack.config.js
const path = require("path");
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const Webpack = require('webpack');//1热更新
module.exports = {
// entry:\['./src/index.js','./src/index2.js'\],
entry:{
index:'./src/index.js',
index2:'./src/index2.js'
},
output:{
path:path.resolve(__dirname,'dist'),
filename:'\[name\].boundle.js'
},
//devServer
devServer:{
//设置服务器访问的基本目录
contentBase:path.resolve(__dirname,'dist'),
//服务器ip地址,localhost
host:'localhost',
port:8090,
open:true,//自动打开浏览器
hot:true//2热更新
},
plugins:\[
new Webpack.HotModuleReplacementPlugin(),//3热更新
new CleanWebpackPlugin(\['dist'\]),//删除dist
new HtmlWebpackPlugin({
minify:{
collapseWhitespace:true,//压缩空白
removeAttributeQuotes:true//删除属性双引号
},
hash:true,//消除缓存,添加版本号
template: './src/index.html',//模板地址
title: ' Webpack4.x ',
filename: 'index.html',//生成多个页面
chunks:\['index'\]//多页面分别引入自己的js
}),
new HtmlWebpackPlugin({
hash:true,
template:'./src/index2.html',
title: '第二个页面',
filename:'index2.html',
chunks:\['index2'\]
})
\]
}
最新文章
- java调用sqlldr oracle 安装的bin目录
- Kubernetes deployed on multiple ubuntu nodes
- 解除SQL对组件";Ad Hoc Distributed Queries";的";STATEMENT'OpenRowset OpenDatasource";的访问
- web.xml文件中的web-app元素 部署
- 【转】 远程到服务器安装visualSVN server,出现Service 'VisualSVN Server' failed to start的解决方法
- 点击TableView中某行进入下一级界面(Swift)
- php验证字符串是否以逗号隔开包括中文字符串
- java基础面试题(转)
- Windows 7下载
- 【手打】LZW编码的C/C++实现
- 单极型ADC如何测量负电压?
- UNIX环境高级编程——创建孤儿进程
- wing带你玩转自定义view系列(3)模仿微信下拉眼睛
- JAVA验证身份证格式及合法性
- Callable与Runable接口 submit与execute区别
- ApplicationListener<;ContextRefreshedEvent>;接口,Spring启动后获取所有拥有特定注解的Bean
- Bootstrap 固定导航条
- mysql 中只能使用 localhost 登录,用ip不能登陆
- 鸟哥私房菜vim常用命令
- 第十一次PSP
热门文章
- 单芯片CS5265替代VL102+PS176|设计USB TYPEC转HDMI方案|替代VL102+PS176
- Android物联网应用程序开发(智慧城市)—— 查询购物信息界面开发
- 编写Java程序,实现多线程操作同一个实例变量的操作会引发多线程并发的安全问题。
- pytest 一个测试类怎样使用多种fixture前置方法
- 基本的sql语法
- spring-data-jpa ----OneToMany 一对多
- Zabbix漏洞利用 CVE-2016-10134
- day4 对偶数、偶数位的操作
- 论文解读GCN 1st《 Deep Embedding for CUnsupervisedlustering Analysis》
- leetcode 102. 二叉树的层次遍历 及 103. 二叉树的锯齿形层次遍历