webpack自动打包和热更新的实现方法
2019-06-24 15:15
721 查看
webpack常用配置
webpack dev server
- 功能:自动打包文件
- 配置dev server:在webpack.config.client.js中配置
const path = require('path'); const HTMlPlugin = require('html-webpack-plugin'); // 判断是否是开发环境 const isDev = process.env.NODE_ENV === 'development' const config = { entry: { app: path.join(__dirname,'../client/app.js') }, output: { filename: '[name].[hash].js', path: path.join(__dirname,'../dist'), publicPath: '/public' }, module: { rules: [ { test: /.jsx$/, loader: 'babel-loader' }, { test: /.js$/, loader: 'babel-loader', exclude: [ path.join(__dirname,'../node_modules') ] } ] }, plugins:[ new HTMlPlugin({ template:path.join(__dirname,'../client/template.html') }) ] } //新增 if(isDev){ // 开发环境 config.devServer = { host: '0.0.0.0',//可以使用ip访问 port:'8888', contentBase: path.join(__dirname,'../dist'),//打包后的文件 overlay:{ errors:true //直接在网页上显示错误 }, publicPath:'/public', historyApiFallback:{ index:'/public/index.html' } } } module.exports = config;
在package.json中增加一条命令来进行自动打包
cross-env是为了兼容mac windows liunx的环境变量,需要安装。
npm install cross-env -D
"dev:client": "cross-env NODE_ENV=development webpack-dev-server --config build/webpack.config.client.js"
hot module replacemennt
功能:自动刷新页面
配置hot module:
安装react-hot-loader
npm install react-hot-loader -D
在webpack.config.client.js中配置
const webpack = require('webpack') if(isDev){ config.entry ={ app:[ "react-hot-loader/patch", path.join(__dirname,'../client/app.js') ] } ...省略 config.plugins.push(new webpack.HotModuleReplacementPlugin()) }
在client/app.js中配置
...省略 import { AppContainer } from 'react-hot-loader'; const root = document.getElementById('root') const render = Component =>{ aaa.hydrate( <AppContainer> <Component /> </AppContainer>, root ) } render(App) if(module.hot){ module.hot.accept('./App.jsx',()=>{ const NextApp = require('./App.jsx').default render(NextApp) }) }
通过以上配置就能达到局部热更新了,修改代码,页面会实时修改,不会刷新页面了。
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- webpack结合express实现自动刷新的方法
- webpack-dev-server自动更新页面方法
- webpack打包js文件及部署的实现方法
- 将控件打包成CAB加数字签名方法实现控件自动更新
- webpack打包react项目的实现方法
- Webpack实现按需打包Lodash的几种方法详解
- 将控件打包成CAB加数字签名方法实现控件自动更新
- webpack实现热加载自动刷新的方法
- 用ISAPI方式实现Web页面的自动更新
- 用ISAPI方式实现Web页面的自动更新
- 实现App自动更新,一个方法搞定
- python实现dnspod自动更新dns解析的方法
- Android客户端apk自动检测更新自动下载自动安装的实现方法
- 解决webpack -p压缩打包react报语法错误的方法
- Vue+WebPack游戏设计:自动背景贴图和游戏主循环的实现
- 通过Git WebHooks+脚本实现自动更新发布代码之Shell脚本(二)
- Android 软件自动更新功能实现的方法
- 详解JS: reduce方法实现 webpack多文件入口
- 14.如何解决使用webpack打包之后,font-awsome路径不对的问题,终极解决方法
- Webpack webpack+gulp实现自动构建部署