时间:2016-11-03 10:50:54
地址:https://github.com/zhongxia245/blog/issues/45

webpack热更新

一、要求

  1. 局部刷新修改的地方

二、如何配置

1、配置 webpack.config.js

下面最重要的是两个地方

  • webpack入口文件,加上 'webpack-dev-server/client' 【必选】 , 'webpack/hot/only-dev-server', 【可选】

  • loader加载器, js|jsx 需要加上 react-loader 在最前面
   {test: /\.(js|jsx)$/,loader: 'react-hot-loader!babel-loader',exclude: /node_modules/},

2、配置node的web server服务器

//热更新的关键一句app.use(require('webpack-hot-middleware')(compiler))

完整的配置

'use strict';
var path = require('path')
var webpack = require('webpack')module.exports = {devtool: 'source-map', cache: true,entry: {app: ['webpack-dev-server/client','webpack/hot/only-dev-server',path.join(__dirname, 'src/index')],common: path.join(__dirname, 'src/common')},output: {path: path.join(__dirname, 'static'),filename: '[name].bundle.js',chunkFilename: 'chunk/[chunkhash:8].chunk.js',publicPath: '/FileManage/static/'},plugins: [new webpack.DefinePlugin({__DEV__: String(true)}),new webpack.HotModuleReplacementPlugin(),new webpack.NoErrorsPlugin(),new webpack.optimize.CommonsChunkPlugin('vender.js')],module: {loaders: [{test: /\.(js|jsx)$/,loader: 'react-hot-loader!babel-loader',exclude: /node_modules/}, {test: /\.css$/,loader: 'style-loader!css-loader'}, {test: /\.(eot|woff|woff2|ttf|svg|png|jpg|gif)(\?v=[\d\.]+)?$/,loader: 'file-loader?name=files/[hash:8].[ext]'}, {test: /\.json$/,loader: 'json-loader'}, {test: /\.less$/,loader: 'style!css!less'}]},resolve: {//自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名extensions: ['', '.js', '.jsx'],root: [path.join(__dirname, '/src'),path.join(__dirname, '/'),path.join(__dirname, '../CommonComponent'),path.resolve(__dirname, '../BFD-UI')],alias: {Loading: 'common/components/Loading/index.js',}}
}

server.js

const express = require('express')
const debug = require('debug')('app:server')
const webpack = require('webpack')
const webpackConfig = require('../build/webpack.config')
const config = require('../config')const app = express()
const paths = config.utils_pathsapp.use(require('connect-history-api-fallback')())// ------------------------------------
// Apply Webpack HMR Middleware
// ------------------------------------
if (config.env === 'development') {const compiler = webpack(webpackConfig)app.use(require('webpack-dev-middleware')(compiler, {publicPath: webpackConfig.output.publicPath,contentBase: paths.client(),hot: true,quiet: config.compiler_quiet,noInfo: config.compiler_quiet,lazy: false,stats: config.compiler_stats}))app.use(require('webpack-hot-middleware')(compiler))app.use(express.static(paths.client('static')))
} else {app.use(express.static(paths.dist()))
}module.exports = app

The following modules couldn't be hot updated: (Full reload needed)

解决方案:参考原文地址 https://github.com/zhongxia245/blog/issues/45

转载于:https://www.cnblogs.com/zhongxia/p/6025795.html

webpack热更新和常见错误处理相关推荐

  1. 【Webpack】1047- 轻松理解webpack热更新原理

    一.前言 - webpack热更新 Hot Module Replacement,简称HMR,无需完全刷新整个页面的同时,更新模块.HMR的好处,在日常开发工作中体会颇深:节省宝贵的开发时间.提升开发 ...

  2. 修改html时webpack热更新,webpack学习之路(二)webpack-dev-server实现热更新

    上一章对webpack的配置有了简单的认识. 这一章,我需要学习的是webpack热更新,因为在开发过程中,不希望当文件更改时,人肉去编译文件,刷新浏览器. webpack热更新 webpack-de ...

  3. webpack热更新实现

    原文地址:webpack热更新实现 webpack,一代版本一代神,代代版本出大神.如果你的webpack和webpack-dev-server版本大于2小于等于3.6,请继续看下去.其它版本就必浪费 ...

  4. less webpack 热更新_webpack---less+热更新 使用

    最近尝试用less写界面,webpack进行打包,然后发现每次修改less时都需要重新执行webpack打包一下,于是就想到了webpack热更新这个功能. 一.使用less less是一门css预处 ...

  5. 理解 webpack 热更新

    一.开启:HotModuleReplacementPlugin/--hot 二.webpack 编译构建后,控制台出现: 1.新的 hash 值 // 作为下次热更新的标识 2.新的 json 文件 ...

  6. webpack 热更新原理解析

    一.什么是 HMR HMR 全称 Hot Module Replacement,中文语境通常翻译为模块热更新,它能够在保持页面状态的情况下动态替换资源模块,提供丝滑顺畅的 Web 页面开发体验. 1. ...

  7. webpack热更新原理-连阿珍都看懂了

    前言 在旧开发的时代,前端项目在开发的过程中修改代码,很有可能是手动切到浏览器刷新页面来看到改动效果.操作不方便且页面之前的编辑记录也都丢失,体验可以说为0.想象一下一个表达你努力填满了所有输入项,结 ...

  8. webpack热更新

    什么是模热更新?有什么优点 模块热更新是webpack的一个功能,它可以使得代码修改之后,不用刷新浏览器就可以更新. 在应用过程中替换添加删出模块,无需重新加载整个页面,是高级版的自动刷新浏览器. 优 ...

  9. webpack热更新原理

    webpack热更新原理 文章目录 webpack热更新原理 一.什么是热更新? 二.webpack热更新基本原理 1.修改webpack.config.js的entry配置 2.启动本地服务 3.监 ...

最新文章

  1. Python数据清理之解析XLRD文件
  2. File Transfer(并查集)
  3. String对象中常用的方法
  4. CSS 盒子的边距塌陷
  5. java基础day11---空指针异常----引用类型--自定义类型赋值--封装
  6. React开发(256):react项目理解 ant design 注意报错提示
  7. Unknown column 'user_uid' in 'field list' sql错误解决过程
  8. d3代码如何改造成update结构(恰当处理enter和exit)
  9. 无人车飞速狂飙,黑科技如何为其加油打气?
  10. python定义变量字符串_Python学习笔记二(变量和字符串)
  11. 货物贸易外汇监测系统 企业版_能源在线监测系统对用能企业的优势
  12. “跳过更新”还得付费?Docker 新变化引发群嘲
  13. 阿里布局无人驾驶;滴滴成立汽车服务;“京东 AI 天团”首亮相| CSDN极客头条...
  14. popen和pclose
  15. 微积分的发现是人类精神的最高胜利
  16. 硬件常见物料识别和单位换算
  17. Word导出pdf时Origin图片出现重影(重叠)
  18. 计算机蓝屏代码0x0000007b,电脑蓝屏代码0x0000007b 电脑蓝屏0x0000007b怎么解决 - 云骑士一键重装系统...
  19. 使用Java和FFempeg批量转码B站缓存下来的列表视频,成MP4格式
  20. 为什么理想电流源的等效内阻是无限大

热门文章

  1. tcp三次握手后被马上rst_TCP为什么需要三次握手?
  2. mysql传参为数组,将数组传递给MySQL存储例程
  3. arm体系结构与编程_ARM体系结构基础(1)
  4. python中math函数_Python math模块 数学函数教程
  5. tkinter 中给某个文本加上滚动条_Python Tkinter自制文本编辑器
  6. php 数组元素 转 变量,php变量与数组相互转换的方法(extract与compact)
  7. windows查看usb信息命令_Linux dumpe2fs命令:查看文件系统信息
  8. 北京大学生物信息学学习(6)隐含马尔可夫模型
  9. 风变Python编程13类的学习2
  10. 风变Python8编程时,两大思维模式