国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

webpack結合express實現自動刷新的方法

2024-05-06 16:50:35
字體:
來源:轉載
供稿:網友

前言

在我們開發的過程中,我們會使用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 || 3000webpackMiddleware(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`)})

這樣,我們在開發的時候,前端和后端都在同一個服務里運行了

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥德县| 绥江县| 阜阳市| 邵武市| 东至县| 福贡县| 鸡西市| 米易县| 丹凤县| 武威市| 时尚| 双峰县| 西畴县| 玛曲县| 两当县| 区。| 冷水江市| 邵阳市| 建阳市| 尼玛县| 高淳县| 和政县| 鄂托克旗| 马尔康县| 丹东市| 尼勒克县| 荆州市| 龙泉市| 皮山县| 民和| 鄂托克前旗| 盘锦市| 宝应县| 海盐县| 德惠市| 贵州省| 邹平县| 铜陵市| 肇州县| 阿克| 黎平县|