@@ -477,6 +477,37 @@ instance.waitUntilValid(() => {
477477});
478478```
479479
480+ ### ` plugin(compiler, options) `
481+
482+ Creates middleware instance in plugin mode.
483+
484+ In plugin mode, stats output is written through webpack infrastructure logger
485+ (` compiler.getInfrastructureLogger ` ) instead of ` console.log ` .
486+
487+ ``` js
488+ const webpack = require (" webpack" );
489+ const middleware = require (" webpack-dev-middleware" );
490+
491+ const compiler = webpack ({
492+ /* Webpack configuration */
493+ });
494+
495+ const instance = middleware .plugin (compiler, {
496+ /* webpack-dev-middleware options */
497+ });
498+ ```
499+
500+ ### Plugin wrappers
501+
502+ The following wrappers enable plugin mode for framework integrations:
503+
504+ - ` middleware.koaPluginWrapper(compiler, options) `
505+ - ` middleware.hapiPluginWrapper() `
506+ - ` middleware.honoPluginWrapper(compiler, options) `
507+
508+ They are equivalent to ` koaWrapper ` /` hapiWrapper ` /` honoWrapper ` , but use plugin
509+ mode logging behavior.
510+
480511### ` forwardError `
481512
482513Type: ` boolean `
@@ -721,11 +752,17 @@ const devMiddlewareOptions = {
721752};
722753const app = new Koa ();
723754
724- app .use (middleware .koaWrapper (compiler, devMiddlewareOptions));
755+ app .use (middleware .koaPluginWrapper (compiler, devMiddlewareOptions));
725756
726757app .listen (3000 );
727758```
728759
760+ Non-plugin variant:
761+
762+ ``` js
763+ app .use (middleware .koaWrapper (compiler, devMiddlewareOptions));
764+ ```
765+
729766### Hapi
730767
731768``` js
@@ -740,7 +777,7 @@ const devMiddlewareOptions = {};
740777const server = Hapi .server ({ port: 3000 , host: " localhost" });
741778
742779await server .register ({
743- plugin: devMiddleware .hapiPlugin (),
780+ plugin: devMiddleware .hapiPluginWrapper (),
744781 options: {
745782 // The `compiler` option is required
746783 compiler,
@@ -758,6 +795,19 @@ process.on("unhandledRejection", (err) => {
758795});
759796```
760797
798+ Non-plugin variant:
799+
800+ ``` js
801+ await server .register ({
802+ plugin: devMiddleware .hapiWrapper (),
803+ options: {
804+ // The `compiler` option is required
805+ compiler,
806+ ... devMiddlewareOptions,
807+ },
808+ });
809+ ```
810+
761811### Fastify
762812
763813Fastify interop will require the use of ` fastify-express ` instead of ` middie ` for providing middleware support. As the authors of ` fastify-express ` recommend, this should only be used as a stopgap while full Fastify support is worked on.
@@ -794,11 +844,17 @@ const devMiddlewareOptions = {
794844
795845const app = new Hono ();
796846
797- app .use (devMiddleware .honoWrapper (compiler, devMiddlewareOptions));
847+ app .use (devMiddleware .honoPluginWrapper (compiler, devMiddlewareOptions));
798848
799849serve (app);
800850```
801851
852+ Non-plugin variant:
853+
854+ ``` js
855+ app .use (devMiddleware .honoWrapper (compiler, devMiddlewareOptions));
856+ ```
857+
802858## Contributing
803859
804860Please take a moment to read our contributing guidelines if you haven't yet done so.
0 commit comments