当我更改客户端文件时,如何自动刷新浏览器?我正在使用ReactJS构建客户端。当我向" /"发出GET请求时,我告诉我的Express服务器发送位于我公共目录中的静态资产。
以下是我的服务器的外观:
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会捆绑所有内容并将所有内容输出到公共目录中。有没有办法让服务器在这里监视更改,以便浏览器可以自动刷新?如果有人知道如何或知道更好的方式,我会非常感激。谢谢!
答案 0 :(得分:1)
您可以使用websocket通知客户端文件更改。您可以使用fs.watch()
观看档案系统:https://nodejs.org/api/fs.html#fs_event_change
网络套接字:https://socket.io/(或您选择的图书馆)
socket.on('file_changed', function () {
location.reload();
});