123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- const SSEStream = require('ssestream').default;
- function ReloadServer(app, compiler) {
- app.get('/reload', (req, res, next) => {
- const sseStream = new SSEStream(req);
- sseStream.pipe(res);
- let closed = false;
- const reloadPlugin = () => {
- if (!closed) {
- sseStream.write(
- {
- event: 'compiled successfully',
- data: {
- action: '刷新插件和当前页面'
- }
- },
- 'utf-8',
- (err) => {
- if (err) {
- console.error(err);
- }
- },
- );
- setTimeout(() => {
- sseStream.unpipe(res);
- }, 100);
- }
- };
- compiler.hooks.done.tap(
- 'chrome reload plugin',
- reloadPlugin
- );
- res.on('close', () => {
- closed = true;
- sseStream.unpipe(res);
- });
- next();
- });
- }
- module.exports = ReloadServer;
|