webpack结合express实现自动刷新的方法


Posted in Javascript onMay 07, 2019

前言

在我们开发的过程中,我们会使用webpack-dev-server实现自动刷新,webpack-dev-server会把编译后的文件全部保存在内存里,而不会写入到文件目录内。但当我们的开发是前端和后端在一个项目里的时候就不行了。我们可以使用webpack结合express实现自动编译刷新

配置webpack

首先就是配置webpack的配置。新建一个webpack.config.js文件

const path = require('path')
const webpack = require('webpack')
var hotMiddlewareScript = 'webpack-hot-middleware/client'

module.exports = {
 entry: {
  main: ['./src/main.js', hotMiddlewareScript]
 },
 mode: 'development',
 output: {
  path: path.resolve(__dirname, 'public'),
  filename: 'js/[name].js',
  publicPath: '/'
 },
 resolve: {
  extensions: ['.js']
 },
 plugins: [
  new webpack.optimize.OccurrenceOrderPlugin(),
  new webpack.HotModuleReplacementPlugin(),
  new webpack.NoEmitOnErrorsPlugin()
 ]
}

我们这里需要关注的是,每个entry后都要增加一个hotMiddlewareScript,还有就是增加3个插件
首先新建一个webpack.middleware文件,这里我们需要用到webpack-dev-middleware和 webpack-hot-middleware两个中间件。

const webpack = require('webpack')
const webpackDevMiddleware = require('webpack-dev-middleware')
const webpackHotMiddleware = require('webpack-hot-middleware')
const webpackConfig = require('./webpack.config')

module.exports = app => {
 let compiler = webpack(webpackConfig)

 app.use(webpackDevMiddleware(compiler, {
  publicPath: '/',
  stats: {
   colors: true,
   chunks: false
  }
 }))
 app.use(webpackHotMiddleware(compiler)) 
}

注意:webpack-dev-middleware和webpack-hot-middleware的静态资源服务仅仅用于开发环境。到了生产环境,应该使用express.static()。

下面编写express代码

const express = require('express')
const bodyParser = require('body-parser')
const {resolve} = require('path')
const webpackMiddleware=require('./webpack.middleware')

const router = express.Router()
const app=express()
const port = process.env.PORT || 3000

webpackMiddleware(app)

app.use(express.static(resolve(__dirname,'./public')))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))

// ...代码

app.use(router)


app.listen(port, () => {
 console.log(`Server listening on http://localhost:${port}, Ctrl+C to stop`)
})

这样,我们在开发的时候,前端和后端都在同一个服务里运行了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript实现的listview效果
Apr 28 Javascript
node.js中的fs.appendFile方法使用说明
Dec 17 Javascript
jQuery中html()方法用法实例
Dec 25 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
Mar 04 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
Mar 20 Javascript
原生js实现轮播图
Feb 27 Javascript
详解vue父子组件间传值(props)
Jun 29 Javascript
详解基于node的前端项目编译时内存溢出问题
Aug 01 Javascript
VsCode插件整理(小结)
Sep 14 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
Mar 04 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
Sep 10 Javascript
记录一次开发微信网页分享的步骤
May 07 #Javascript
Vue 幸运大转盘实现思路详解
May 06 #Javascript
Vue运用transition实现过渡动画
May 06 #Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
May 06 #Javascript
vue路由跳转传参数的方法
May 06 #Javascript
如何获取vue单文件自身源码路径
May 06 #Javascript
详解vue-cli中使用rem,vue自适应
May 06 #Javascript
You might like
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
vue中的scope使用详解
2017/10/29 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
jQuery实现左右两个列表框的内容相互移动功能示例
2019/01/27 jQuery
Python 命令行参数sys.argv
2008/09/06 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
详解Python装饰器
2019/03/25 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
python实现视频分帧效果
2019/05/31 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
采购部岗位职责
2013/11/24 职场文书
办公室内勤岗位职责范本
2013/12/09 职场文书
营销总经理的岗位职责
2013/12/15 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
庆祝三八妇女节标语
2014/10/09 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
2015员工年度考核评语
2015/03/25 职场文书
少先队工作总结2015
2015/05/13 职场文书
消费者理赔投诉书
2015/07/02 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书