webpack结合express实现自动刷新的方法
程序员文章站
2023-11-14 08:50:04
前言
在我们开发的过程中,我们会使用webpack-dev-server实现自动刷新,webpack-dev-server会把编译后的文件全部保存在内存里,而不会写入到文...
前言
在我们开发的过程中,我们会使用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结合express实现自动刷新的方法
-
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
-
修复webpack自动刷新页面慢问题的方法教程
-
C#使用WebService结合jQuery实现无刷新翻页的方法
-
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
-
webpack实现热加载自动刷新的方法
-
ajax结合mysql数据库和smarty实现局部数据状态的刷新方法
-
微信小程序判断是否联网 重新连网的状态下自动刷新(两种实现方法)
-
webpack结合express实现自动刷新的方法
-
vue2.0结合DataTable插件实现表格动态刷新的方法详解