@@ -41,10 +41,13 @@ npm install webpack-dev-middleware --save-dev
4141``` js
4242const webpack = require (" webpack" );
4343const middleware = require (" webpack-dev-middleware" );
44+
4445const compiler = webpack ({
4546 // webpack options
4647});
48+
4749const express = require (" express" );
50+
4851const app = express ();
4952
5053app .use (
99102
100103``` js
101104webpackDevMiddleware (compiler, {
102- headers : () => {
103- return {
104- " Last-Modified" : new Date (),
105- };
106- },
105+ headers : () => ({
106+ " Last-Modified" : new Date (),
107+ }),
107108});
108109```
109110
@@ -250,15 +251,14 @@ The function follows the same premise as [`Array#filter`](https://developer.mozi
250251
251252``` js
252253const webpack = require (" webpack" );
254+
253255const configuration = {
254256 /* Webpack configuration */
255257};
256258const compiler = webpack (configuration);
257259
258260middleware (compiler, {
259- writeToDisk : (filePath ) => {
260- return / superman\. css$ / .test (filePath);
261- },
261+ writeToDisk : (filePath ) => / superman\. css$ / .test (filePath),
262262});
263263```
264264
@@ -276,7 +276,7 @@ This can be done simply by using `path.join`:
276276
277277``` js
278278const webpack = require (" webpack" );
279- const path = require (" path" );
279+ const path = require (" node: path" );
280280const myOutputFileSystem = require (" my-fs" );
281281const mkdirp = require (" mkdirp" );
282282
@@ -296,6 +296,7 @@ Allows to set up a callback to change the response data.
296296
297297``` js
298298const webpack = require (" webpack" );
299+
299300const configuration = {
300301 /* Webpack configuration */
301302};
@@ -304,11 +305,10 @@ const compiler = webpack(configuration);
304305middleware (compiler, {
305306 // Note - if you send the `Range` header you will have `ReadStream`
306307 // Also `data` can be `string` or `Buffer`
307- modifyResponseData : (req , res , data , byteLength ) => {
308+ modifyResponseData : (req , res , data , byteLength ) =>
308309 // Your logic
309310 // Don't use `res.end()` or `res.send()` here
310- return { data, byteLength };
311- },
311+ ({ data, byteLength }),
312312});
313313```
314314
@@ -333,12 +333,16 @@ A function executed once the middleware has stopped watching.
333333``` js
334334const express = require (" express" );
335335const webpack = require (" webpack" );
336+
336337const compiler = webpack ({
337338 /* Webpack configuration */
338339});
340+
339341const middleware = require (" webpack-dev-middleware" );
342+
340343const instance = middleware (compiler);
341344
345+ // eslint-disable-next-line new-cap
342346const app = new express ();
343347
344348app .use (instance);
@@ -365,12 +369,16 @@ A function executed once the middleware has invalidated.
365369``` js
366370const express = require (" express" );
367371const webpack = require (" webpack" );
372+
368373const compiler = webpack ({
369374 /* Webpack configuration */
370375});
376+
371377const middleware = require (" webpack-dev-middleware" );
378+
372379const instance = middleware (compiler);
373380
381+ // eslint-disable-next-line new-cap
374382const app = new express ();
375383
376384app .use (instance);
@@ -402,12 +410,16 @@ If the bundle is valid at the time of calling, the callback is executed immediat
402410``` js
403411const express = require (" express" );
404412const webpack = require (" webpack" );
413+
405414const compiler = webpack ({
406415 /* Webpack configuration */
407416});
417+
408418const middleware = require (" webpack-dev-middleware" );
419+
409420const instance = middleware (compiler);
410421
422+ // eslint-disable-next-line new-cap
411423const app = new express ();
412424
413425app .use (instance);
@@ -433,12 +445,16 @@ URL for the requested file.
433445``` js
434446const express = require (" express" );
435447const webpack = require (" webpack" );
448+
436449const compiler = webpack ({
437450 /* Webpack configuration */
438451});
452+
439453const middleware = require (" webpack-dev-middleware" );
454+
440455const instance = middleware (compiler);
441456
457+ // eslint-disable-next-line new-cap
442458const app = new express ();
443459
444460app .use (instance);
@@ -461,10 +477,13 @@ But there is a solution to avoid it - mount the middleware to a non-root route,
461477``` js
462478const webpack = require (" webpack" );
463479const middleware = require (" webpack-dev-middleware" );
480+
464481const compiler = webpack ({
465482 // webpack options
466483});
484+
467485const express = require (" express" );
486+
468487const app = express ();
469488
470489// Mounting the middleware to the non-root route allows avoids this.
@@ -500,12 +519,15 @@ Example Implementation:
500519``` js
501520const express = require (" express" );
502521const webpack = require (" webpack" );
522+
503523const compiler = webpack ({
504524 /* Webpack configuration */
505525});
526+
506527const isObject = require (" is-object" );
507528const middleware = require (" webpack-dev-middleware" );
508529
530+ // eslint-disable-next-line new-cap
509531const app = new express ();
510532
511533// This function makes server rendering of asset references consistent with different webpack chunk/entry configurations
@@ -522,7 +544,7 @@ app.use(middleware(compiler, { serverSideRender: true }));
522544// The following middleware would not be invoked until the latest build is finished.
523545app .use ((req , res ) => {
524546 const { devMiddleware } = res .locals .webpack ;
525- const outputFileSystem = devMiddleware . outputFileSystem ;
547+ const { outputFileSystem } = devMiddleware;
526548 const jsonWebpackStats = devMiddleware .stats .toJson ();
527549 const { assetsByChunkName , outputPath } = jsonWebpackStats;
528550
@@ -585,7 +607,7 @@ Examples of use with other servers will follow here.
585607
586608``` js
587609const connect = require (" connect" );
588- const http = require (" http" );
610+ const http = require (" node: http" );
589611const webpack = require (" webpack" );
590612const webpackConfig = require (" ./webpack.config.js" );
591613const devMiddleware = require (" webpack-dev-middleware" );
@@ -604,7 +626,7 @@ http.createServer(app).listen(3000);
604626### Router
605627
606628``` js
607- const http = require (" http" );
629+ const http = require (" node: http" );
608630const Router = require (" router" );
609631const finalhandler = require (" finalhandler" );
610632const webpack = require (" webpack" );
@@ -615,11 +637,13 @@ const compiler = webpack(webpackConfig);
615637const devMiddlewareOptions = {
616638 /** Your webpack-dev-middleware-options */
617639};
640+
641+ // eslint-disable-next-line new-cap
618642const router = Router ();
619643
620644router .use (devMiddleware (compiler, devMiddlewareOptions));
621645
622- var server = http .createServer ((req , res ) => {
646+ const server = http .createServer ((req , res ) => {
623647 router (req, res, finalhandler (req, res));
624648});
625649
@@ -675,22 +699,20 @@ const devMiddleware = require("webpack-dev-middleware");
675699const compiler = webpack (webpackConfig);
676700const devMiddlewareOptions = {};
677701
678- (async () => {
679- const server = Hapi .server ({ port: 3000 , host: " localhost" });
702+ const server = Hapi .server ({ port: 3000 , host: " localhost" });
680703
681- await server .register ({
682- plugin: devMiddleware .hapiPlugin (),
683- options: {
684- // The `compiler` option is required
685- compiler,
686- ... devMiddlewareOptions,
687- },
688- });
704+ await server .register ({
705+ plugin: devMiddleware .hapiPlugin (),
706+ options: {
707+ // The `compiler` option is required
708+ compiler,
709+ ... devMiddlewareOptions,
710+ },
711+ });
689712
690- await server .start ();
713+ await server .start ();
691714
692- console .log (" Server running on %s" , server .info .uri );
693- })();
715+ console .log (" Server running on %s" , server .info .uri );
694716
695717process .on (" unhandledRejection" , (err ) => {
696718 console .log (err);
@@ -713,11 +735,9 @@ const devMiddlewareOptions = {
713735 /** Your webpack-dev-middleware-options */
714736};
715737
716- (async () => {
717- await fastify .register (require (" @fastify/express" ));
718- await fastify .use (devMiddleware (compiler, devMiddlewareOptions));
719- await fastify .listen (3000 );
720- })();
738+ await fastify .register (require (" @fastify/express" ));
739+ await fastify .use (devMiddleware (compiler, devMiddlewareOptions));
740+ await fastify .listen (3000 );
721741```
722742
723743### Hono
0 commit comments