Skip to content

Commit ce90158

Browse files
committed
Support rebuild event from dev server
1 parent 1697d5b commit ce90158

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

server.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const DEFAULT_OPTIONS = {
2727
pathPrefix: "/", // May be overridden by Eleventy, adds a virtual base directory to your project
2828
watch: [], // Globs to pass to separate dev server chokidar for watching
2929
aliases: {}, // Aliasing feature
30+
rebuildUrl: null, // POST URL to trigger rebuild
3031

3132
// Logger (fancier one is injected by Eleventy)
3233
logger: {
@@ -79,6 +80,10 @@ class EleventyDevServer {
7980
this.options.pathPrefix = this.cleanupPathPrefix(this.options.pathPrefix);
8081
}
8182

83+
setEventBus(_eventBus) {
84+
this.eventBus = _eventBus;
85+
}
86+
8287
get watcher() {
8388
if(!this._watcher) {
8489
debug("Watching %O", this.options.watch);
@@ -415,6 +420,12 @@ class EleventyDevServer {
415420
}
416421

417422
eleventyDevServerMiddleware(req, res, next) {
423+
if (this.options.rebuildUrl && req.url === this.options.rebuildUrl && req.method === 'POST') {
424+
this.eventBus.emit('eleventyDevServer.rebuild');
425+
res.writeHead(200);
426+
return res.end();
427+
}
428+
418429
if(req.url === `/${this.options.injectedScriptsFolder}/reload-client.js`) {
419430
if(this.options.liveReload) {
420431
res.setHeader("Content-Type", mime.getType("js"));

0 commit comments

Comments
 (0)