当静态资产通过Express发送时,如何在开发过程中自动刷新浏览器?



更改客户端文件时如何自动刷新浏览器? 我正在使用ReactJS构建客户端。 我告诉我的 Express 服务器在向"/"发出 GET 请求时发送位于我的公共目录中的静态资产。

这是我的服务器的外观:

const express = require('express');
const path = require('path');
const logger = require('morgan');
const bodyParser = require('body-parser');
const app = express();
const port = process.env.PORT || 1128;
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// static assets
app.use(express.static(path.resolve(__dirname, './../public')));
app.listen(port, () =>
console.log(`server is listening on port: ${port}`)
);

进行更改后,webpack 会捆绑所有内容并将所有内容输出到公共目录中。 服务器有没有办法监视此处的更改,以便浏览器可以自动刷新?如果有人知道如何或知道更好的方法,我将不胜感激。 谢谢!

你可以有一个websocket来通知客户端文件更改。您可以使用fs.watch()检测文件更改

监视文件系统:https://nodejs.org/api/fs.html#fs_event_change

Web 套接字:https://socket.io/(或您选择的库(

socket.on('file_changed', function () {
location.reload();
});

最新更新