webpack4.0---热更新                        
  使用webpack可帮助我们的开发以及打包,在开发过程中,有时候我们只修改了部分代码并想不必刷新整个页面即可看到更改后的效果,这时候 webpack-dev-server (WDS)热更新就可以派上用场了。
 

1、关于 WDS 热更新,有以下几点:
    (1)WDS 不刷新整个页面。
  (2)WDS 不输出文件,而放在内存中(没有磁盘IO,速度更快)。
  (3)使用 HotModuleReplacementPlugin 插件(webpack自带)。
 
2、安装
npm i webpack-dev-server -D

package.json文件

3、项目文件目录结构

在web10项目里建一个build文件夹里面在建一个webpack.conf.js文件

4、webpack.conf.js配置

 //声明变量
var webpack = require('webpack');
var PATH = require('path');//这是nodejs的核心模块之一
var SRC_PATH = PATH.resolve(__dirname,'../src');
var DIST_PATH = PATH.resolve(__dirname,'../dist'); module.exports = {
entry:SRC_PATH+'\\index.js',
output:{
path:DIST_PATH,
filename:'bundle.js'
},
//loader
module:{
},
//插件
plugins:[
],
devServer:{//开发服务器
hot:true,//热更新
inline: true,//
open:true,//是否自动打开默认浏览器
contentBase:DIST_PATH,//发布目录
port:'0996',//控制端口
host:'0.0.0.0',//host地址
historyApiFallback:true,
useLocalIp:true,//是否用自己的IP
proxy:{
'/action':'http://127.0.0.1:8080/'
}
}
}

编译:命令 webpack --config build/webpack.conf.js --mode development

编译后dist里面会多出一个bundle.js   改写一下index.html引入bundle.js

同时npm 允许在package.json文件里面,使用scripts字段自定义脚本命令。

"dev": "webpack-dev-server --mode development --inline --progress --config build/webpack.conf.js"

运行:自动打开浏览器

 npm run dev

访问你写的index.html

热更新表现在哪里?

   修改src里的index.js文件 点击保存  同时热更新起效 修改bundle.js里的值,从而起到热更新的效果。

缺点                              

  会发现这样虽然解决了网页刷新麻烦的问题 ,但是也有不方便的之处 就是你的dist中的index.html文件要自己手动建 而且打包后的main.js也要自己手动写入,比较麻烦下一篇随笔要讲的一个插件就是可以动态生成html文件,不用手写代码。打包就直接引用。

webpack4.0(二)--热更新的更多相关文章

  1. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  2. 【Quick 3.3】资源脚本加密及热更新(二)资源加密

    [Quick 3.3]资源脚本加密及热更新(二)资源加密 注:本文基于Quick-cocos2dx-3.3版本编写 一.介绍 在前一篇文章中介绍了代码加密,加密方式是XXTEA.对于资源文件来说,同样 ...

  3. webpack 配置react脚手架(二):热更新

    下面继续配置 webpack dev server    hot module replacement: 首先配置dev-server     安装     npm i webpack-dev-ser ...

  4. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用FairyGUI (二)

    上次讲解了FairyGUI的最简单的热更新办法,并对其中一个Demo进行了修改并做成了热更新的方式. 这次我们来一个更加复杂一些的情况:Emoji. FairyGUI的   Example 04 - ...

  5. Unity实现c#热更新方案探究(二)

    转载请标明出处:http://www.cnblogs.com/zblade/ 一.IOS对DLL热更新的禁止 紧接上文,继续对C#热更新的研究.上文中,已经说了如何基于appDomain来实现对DLL ...

  6. [Android教程] Cordova开发App入门(二)使用热更新插件

    前言 不知各位遇没遇到过,刚刚发布的应用,突然发现了一个隐藏极深的“碧油鸡(BUG)”,肿么办!肿么办!肿么办!如果被老板发现,一定会让程序员哥哥去“吃鸡”.但是想要修复这个“碧油鸡”,就必须要重新打 ...

  7. Egret打包App Android热更新(4.1.0)

    官网教程:http://developer.egret.com/cn/github/egret-docs/Native/native/hotUpdate/index.html 详细可看官网教程,我这里 ...

  8. ElasticSearch5.0+版本分词热更新实践记录

    前言 刚开始接触ElasticSearch的时候,版本才是2.3.4,短短的时间,现在都更新到5.0+版本了.分词和head插件好像用法也不一样了,本博客记录如何配置Elasticsearch的Hea ...

  9. 【webpack4.0】---webpack的基本使用(二)

    一.什么是plugins plugins可以使webpack在运行到某个时刻的时候,帮你做一些事情,类似于生命周期一样 plugins,它就是一个扩展器,它丰富了wepack本身,针对是loader结 ...

随机推荐

  1. TCP/IP协议指南

    分组: packet 通常用来表示任何类型的报文. 数据报: datagram 表示网络分层技术,它也经常用于表示在OSI参考模型较高层上的发送报文. 帧: frame 特别常见用于数据链路层上的报文 ...

  2. vue引入百度地图 --BMap is not defined ,eslint BMap报错

    在mounted初始化地图的时候,因为异步问题会导致BMap is not defined,也就是百度的api还没完全引入或者加载完成,就已经进行地图初始化了 解决方法: 1.创建一个map.js e ...

  3. [网络]HTTP

    HTTP HTTP 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本 ...

  4. X-Admin&ABP框架开发-RBAC

    在业务系统需求规划过程中,通常对于诸如组织机构.用户和角色等这种基础功能,通常是将这部分功能规划到通用子域中,这也说明了,对于这部分功能来讲,是系统的基石,整个业务体系是建立于这部分基石之上的,当然, ...

  5. js正则匹配的出链接地址

    content为需要匹配的值 var b=/<a([\s]+|[\s]+[^<>]+[\s]+)href=(\"([^<>"\']*)\"| ...

  6. oracle基础(基本介绍)

    数据库 磁盘上存储的数据的集合 在物理上表现为数据文件.日志文件和控制文件等 在逻辑上以表空间形式存在 必须首先创建数据库,然后才能使用Oracle 数据库实例 每个启动的数据库都对应一个数据库实例, ...

  7. Python数据可视化之matplotlib

    常用模块导入 import numpy as np import matplotlib import matplotlib.mlab as mlab import matplotlib.pyplot ...

  8. 手动部署LNMP环境(CentOS 7)

    手动部署LNMP环境(CentOS 7) 一.修改 yum 源 [root@localhost ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/e ...

  9. PL真有意思(四):控制流

    前言 对大多数计算模型而言,顺序都是基本的东西,它确定了为完成所期望的某种工作,什么事情应该最先做,什么事应该随后做,我们可以将语言规定顺序的机制分为几个类别: 顺序执行 选择 迭代 过程抽象 递归 ...

  10. vue 原生添加滚动加载更多

    vue中添加滚动加载更多,因为是单页面所以需要在跳出页面时候销毁滚动,要不会出现错乱.我们在mounted建立滚动,destroyed销毁滚动. mounted () { window.addEven ...