欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年05月07日 08:32:57   作者:shibin-youlv-1  
這篇文章主要給大家介紹了關于webpack結合express實現自動刷新的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用webpack具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

在我們開發(fā)的過程中,我們會使用webpack-dev-server實現自動刷新,webpack-dev-server會把編譯后的文件全部保存在內存里,而不會寫入到文件目錄內。但當我們的開發(fā)是前端和后端在一個項目里的時候就不行了。我們可以使用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的靜態(tài)資源服務僅僅用于開發(fā)環(huán)境。到了生產環(huán)境,應該使用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`)
})

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

總結

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

相關文章

  • 經驗幾則 推薦

    經驗幾則 推薦

    [紅色]經驗幾則 推薦...
    2006-09-09
  • js+html5實現復制文字按鈕

    js+html5實現復制文字按鈕

    這篇文章主要為大家詳細介紹了js+html5實現復制文字按鈕,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 7個好用的TypeScript新功能

    7個好用的TypeScript新功能

    這篇文章主要介紹了7個好用的TypeScript新功能,想了解TypeScript的同學,一定要看一下
    2021-05-05
  • 在JavaScript中使用for循環(huán)的方法詳解

    在JavaScript中使用for循環(huán)的方法詳解

    在本文中,我們將學習 JavaScript 中提供,的 for 循環(huán),我們將了解如何在 JavaScript 中使用 for...in 循環(huán)語句、其語法、工作原理示例、何時使用或避免使用它以及我們可以使用哪些其他類型的循環(huán),需要的朋友可以參考下
    2023-07-07
  • Javascript attachEvent傳遞參數的辦法

    Javascript attachEvent傳遞參數的辦法

    找了半天找到的解決辦法,看介紹說是javascript的閉包問題,導致得不能直接讀取外部的那個函數,不然就所有傳遞的參數都變?yōu)樽詈笠粋€了。
    2009-12-12
  • js使用removeChild方法動態(tài)刪除div元素

    js使用removeChild方法動態(tài)刪除div元素

    本節(jié)為大家介紹了js使用removeChild方法動態(tài)刪除div元素,需要的朋友可以參考下
    2014-08-08
  • javascript白色簡潔計算器

    javascript白色簡潔計算器

    白色簡潔樣式計算器JS代碼是一款精美簡潔計算器JS代碼插件網頁特效,軟件應用,后臺應用JS計算器插件代碼免費下載。
    2015-05-05
  • 詳解JS如何解決大數據下滾動頁面卡頓問題

    詳解JS如何解決大數據下滾動頁面卡頓問題

    之前遇到不分頁直接獲取到全部數據,前端滾動查看數據,頁面就挺卡頓的,所以這篇文章來和大家聊聊如何解決這一問題,感興趣的小伙伴可以了解下
    2023-07-07
  • 如何使用JavaScript檢測空閑的瀏覽器選項卡

    如何使用JavaScript檢測空閑的瀏覽器選項卡

    這篇文章主要介紹了如何使用JavaScript檢測空閑的瀏覽器選項卡,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • XML、HTML、CSS與JS的區(qū)別整理

    XML、HTML、CSS與JS的區(qū)別整理

    在BS中,xml,html,css和js我們都學過,起初分不清這四者的區(qū)別和聯系,隨著知識的增長,有了一些體會,下面通過本文給大家簡單介紹 XML、HTML、CSS與JS的區(qū)別,需要的朋友參考下
    2016-02-02

最新評論