当前位置: 首页 > 编程笔记 >

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

蒋嘉实
2023-03-14
本文向大家介绍webpack结合express实现自动刷新的方法,包括了webpack结合express实现自动刷新的方法的使用技巧和注意事项,需要的朋友参考一下

前言

在我们开发的过程中,我们会使用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`)
})

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。

 类似资料:
  • 本文向大家介绍webpack实现热加载自动刷新的方法,包括了webpack实现热加载自动刷新的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍了webpack实现热加载自动刷新的方法,分享给大家,具体如下: 一、webpack-dev-server 一个轻量级的服务 功能:修改代码及时呈现到浏览器上。 第一步:安装   第二步:写入到依赖 第三步:修改webpack配置文件 说明:如果想指定

  • 本文向大家介绍vue2.0结合DataTable插件实现表格动态刷新的方法详解,包括了vue2.0结合DataTable插件实现表格动态刷新的方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了vue2.0结合DataTable插件实现表格动态刷新的方法。分享给大家供大家参考,具体如下: 产品提出的需求是这样的,很普通的一个统计server端task完成率和状态的表格,要自动刷新其中的

  • 本文向大家介绍ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法,包括了ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法。分享给大家供大家参考。具体实现方法分析如下: 首先,AjaxFileUploader插件是一

  • 如果一个前端代码,使用webpack可以 设置路径别名 比如src可以用@代替 使用import 引用 兼容各种文件名 .js .jsx .ts等等 而后端node express的项目就没听说有人用webpack,我知道,以上的东西可以手动在node express项目中进行设置,但是如果有一个类似webpack的工具那就更好了。 请问有类似的工具吗,不想要一个一个找解决方案进行配置啊。就仅仅一

  • 本文向大家介绍jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码),包括了jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)的使用技巧和注意事项,需要的朋友参考一下 上一篇记录了BaiduTemplate模板引擎使用示例(附源码),在此基础上对使用方法进行了封装 自定义插件jajaxrefresh.js 代码如下: 调用方法: 预览效果:

  • 想象一下,如果要直播比赛的比分,或股票市场的实时状态,或当前的外汇配给,该怎么实现呢?显然,要实现这种实时功能,您就不得不规律性地刷新页面。 JSP提供了一种机制来使这种工作变得简单,它能够定时地自动刷新页面。 刷新一个页面最简单的方式就是使用response对象的setIntHeader()方法。这个方法的签名如下: public void setIntHeader(String header