@@ -39,9 +39,9 @@ bun add -D @rspack/dev-middleware
3939## Usage
4040
4141``` js
42- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
43- const express = require ( " express " ) ;
44- const { rspack } = require ( " @rspack/core " ) ;
42+ import { rspack } from " @rspack/core " ;
43+ import { devMiddleware } from " @rspack/dev-middleware " ;
44+ import express from " express " ;
4545
4646const compiler = rspack ({
4747 // Rspack options
@@ -253,7 +253,7 @@ This option also accepts a `Function` value, which can be used to filter which f
253253The function follows the same premise as [ ` Array#filter ` ] ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter ) in which a return value of ` false ` _ will not_ write the file, and a return value of ` true ` _ will_ write the file to disk. eg.
254254
255255``` js
256- const { rspack } = require ( " @rspack/core" ) ;
256+ import { rspack } from " @rspack/core" ;
257257
258258const configuration = {
259259 /* Rspack configuration */
@@ -273,16 +273,16 @@ Default: [memfs](https://github.com/streamich/memfs)
273273Set the default file system which will be used by Rspack as primary destination of generated files.
274274This option isn't affected by the [ writeToDisk] ( #writeToDisk ) option.
275275
276- This can be done simply by using ` path. join ` :
276+ This can be done simply by using ` node: path` 's ` join ` :
277277
278278``` js
279- const path = require ( " node:path" ) ;
280- const mkdirp = require ( " mkdirp " ) ;
281- const myOutputFileSystem = require ( " my-fs " ) ;
282- const { rspack } = require ( " @rspack/core " ) ;
279+ import { join } from " node:path" ;
280+ import { rspack } from " @rspack/core " ;
281+ import mkdirp from " mkdirp " ;
282+ import myOutputFileSystem from " my-fs " ;
283283
284- myOutputFileSystem .join = path . join . bind (path); // no need to bind
285- myOutputFileSystem .mkdirp = mkdirp . bind (mkdirp); // no need to bind
284+ myOutputFileSystem .join = join;
285+ myOutputFileSystem .mkdirp = mkdirp;
286286
287287const compiler = rspack ({
288288 /* Rspack configuration */
@@ -296,7 +296,7 @@ devMiddleware(compiler, { outputFileSystem: myOutputFileSystem });
296296Allows to set up a callback to change the response data.
297297
298298``` js
299- const { rspack } = require ( " @rspack/core" ) ;
299+ import { rspack } from " @rspack/core" ;
300300
301301const configuration = {
302302 /* Rspack configuration */
@@ -332,18 +332,17 @@ Required: `No`
332332A function executed once the middleware has stopped watching.
333333
334334``` js
335- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
336- const express = require ( " express " ) ;
337- const { rspack } = require ( " @rspack/core " ) ;
335+ import { rspack } from " @rspack/core " ;
336+ import { devMiddleware } from " @rspack/dev-middleware " ;
337+ import express from " express " ;
338338
339339const compiler = rspack ({
340340 /* Rspack configuration */
341341});
342342
343343const instance = devMiddleware (compiler);
344344
345- // eslint-disable-next-line new-cap
346- const app = new express ();
345+ const app = express ();
347346
348347app .use (instance);
349348
@@ -367,18 +366,17 @@ Required: `No`
367366A function executed once the middleware has invalidated.
368367
369368``` js
370- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
371- const express = require ( " express " ) ;
372- const { rspack } = require ( " @rspack/core " ) ;
369+ import { rspack } from " @rspack/core " ;
370+ import { devMiddleware } from " @rspack/dev-middleware " ;
371+ import express from " express " ;
373372
374373const compiler = rspack ({
375374 /* Rspack configuration */
376375});
377376
378377const instance = devMiddleware (compiler);
379378
380- // eslint-disable-next-line new-cap
381- const app = new express ();
379+ const app = express ();
382380
383381app .use (instance);
384382
@@ -407,18 +405,17 @@ A function executed when the bundle becomes valid.
407405If the bundle is valid at the time of calling, the callback is executed immediately.
408406
409407``` js
410- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
411- const express = require ( " express " ) ;
412- const { rspack } = require ( " @rspack/core " ) ;
408+ import { rspack } from " @rspack/core " ;
409+ import { devMiddleware } from " @rspack/dev-middleware " ;
410+ import express from " express " ;
413411
414412const compiler = rspack ({
415413 /* Rspack configuration */
416414});
417415
418416const instance = devMiddleware (compiler);
419417
420- // eslint-disable-next-line new-cap
421- const app = new express ();
418+ const app = express ();
422419
423420app .use (instance);
424421
@@ -441,18 +438,17 @@ Required: `Yes`
441438URL for the requested file.
442439
443440``` js
444- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
445- const express = require ( " express " ) ;
446- const { rspack } = require ( " @rspack/core " ) ;
441+ import { rspack } from " @rspack/core " ;
442+ import { devMiddleware } from " @rspack/dev-middleware " ;
443+ import express from " express " ;
447444
448445const compiler = rspack ({
449446 /* Rspack configuration */
450447});
451448
452449const instance = devMiddleware (compiler);
453450
454- // eslint-disable-next-line new-cap
455- const app = new express ();
451+ const app = express ();
456452
457453app .use (instance);
458454
@@ -484,9 +480,9 @@ Since `output.publicPath` and `output.filename`/`output.chunkFilename` can be dy
484480But there is a solution to avoid it - mount the middleware to a non-root route, for example:
485481
486482``` js
487- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
488- const express = require ( " express " ) ;
489- const { rspack } = require ( " @rspack/core " ) ;
483+ import { rspack } from " @rspack/core " ;
484+ import { devMiddleware } from " @rspack/dev-middleware " ;
485+ import express from " express " ;
490486
491487const compiler = rspack ({
492488 // Rspack options
@@ -525,17 +521,17 @@ process is finished with server-side rendering enabled._
525521Example Implementation:
526522
527523``` js
528- const { devMiddleware } = require (" @rspack/dev-middleware" );
529- const express = require (" express" );
530- const isObject = require (" is-object" );
531- const { rspack } = require (" @rspack/core" );
524+ import { join } from " node:path" ;
525+ import { rspack } from " @rspack/core" ;
526+ import { devMiddleware } from " @rspack/dev-middleware" ;
527+ import express from " express" ;
528+ import isObject from " is-object" ;
532529
533530const compiler = rspack ({
534531 /* Rspack configuration */
535532});
536533
537- // eslint-disable-next-line new-cap
538- const app = new express ();
534+ const app = express ();
539535
540536// This function makes server rendering of asset references consistent with different Rspack chunk/entry configurations
541537function normalizeAssets (assets ) {
@@ -563,16 +559,16 @@ app.use((req, res) => {
563559 <title>My App</title>
564560 <style>
565561 ${ normalizeAssets (assetsByChunkName .main )
566- .filter ((path ) => path .endsWith (" .css" ))
567- .map ((path ) => outputFileSystem .readFileSync (path . join (outputPath, path )))
562+ .filter ((asset ) => asset .endsWith (" .css" ))
563+ .map ((asset ) => outputFileSystem .readFileSync (join (outputPath, asset )))
568564 .join (" \n " )}
569565 </style>
570566 </head>
571567 <body>
572568 <div id="root"></div>
573569 ${ normalizeAssets (assetsByChunkName .main )
574- .filter ((path ) => path .endsWith (" .js" ))
575- .map ((path ) => ` <script src="${ path } "></script>` )
570+ .filter ((asset ) => asset .endsWith (" .js" ))
571+ .map ((asset ) => ` <script src="${ asset } "></script>` )
576572 .join (" \n " )}
577573 </body>
578574</html>
@@ -587,11 +583,11 @@ Examples of use with other servers will follow here.
587583### Connect
588584
589585``` js
590- const http = require ( " node:http" ) ;
591- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
592- const connect = require ( " connect " ) ;
593- const { rspack } = require ( " @rspack/core " ) ;
594- const rspackConfig = require ( " ./rspack.config.js" ) ;
586+ import { createServer } from " node:http" ;
587+ import { rspack } from " @rspack/core " ;
588+ import { devMiddleware } from " @rspack/dev-middleware " ;
589+ import connect from " connect " ;
590+ import rspackConfig from " ./rspack.config.js" ;
595591
596592const compiler = rspack (rspackConfig);
597593const devMiddlewareOptions = {
@@ -601,18 +597,18 @@ const app = connect();
601597
602598app .use (devMiddleware (compiler, devMiddlewareOptions));
603599
604- http . createServer (app).listen (3000 );
600+ createServer (app).listen (3000 );
605601```
606602
607603### Router
608604
609605``` js
610- const http = require ( " node:http" ) ;
611- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
612- const finalhandler = require ( " finalhandler " ) ;
613- const Router = require ( " router " ) ;
614- const { rspack } = require ( " @rspack/core " ) ;
615- const rspackConfig = require ( " ./rspack.config.js" ) ;
606+ import { createServer } from " node:http" ;
607+ import { rspack } from " @rspack/core " ;
608+ import { devMiddleware } from " @rspack/dev-middleware " ;
609+ import finalhandler from " finalhandler " ;
610+ import Router from " router " ;
611+ import rspackConfig from " ./rspack.config.js" ;
616612
617613const compiler = rspack (rspackConfig);
618614const devMiddlewareOptions = {
@@ -624,7 +620,7 @@ const router = Router();
624620
625621router .use (devMiddleware (compiler, devMiddlewareOptions));
626622
627- const server = http . createServer ((req , res ) => {
623+ const server = createServer ((req , res ) => {
628624 router (req, res, finalhandler (req, res));
629625});
630626
@@ -634,10 +630,10 @@ server.listen(3000);
634630### Express
635631
636632``` js
637- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
638- const express = require ( " express " ) ;
639- const { rspack } = require ( " @rspack/core " ) ;
640- const rspackConfig = require ( " ./rspack.config.js" ) ;
633+ import { rspack } from " @rspack/core " ;
634+ import { devMiddleware } from " @rspack/dev-middleware " ;
635+ import express from " express " ;
636+ import rspackConfig from " ./rspack.config.js" ;
641637
642638const compiler = rspack (rspackConfig);
643639const devMiddlewareOptions = {
@@ -653,29 +649,29 @@ app.listen(3000, () => console.log("Example app listening on port 3000!"));
653649### Koa
654650
655651``` js
656- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
657- const Koa = require ( " koa " ) ;
658- const { rspack } = require ( " @rspack/core " ) ;
659- const rspackConfig = require ( " ./rspack.simple.config" ) ;
652+ import { rspack } from " @rspack/core " ;
653+ import { devMiddleware } from " @rspack/dev-middleware " ;
654+ import Koa from " koa " ;
655+ import rspackConfig from " ./rspack.simple.config.js " ;
660656
661657const compiler = rspack (rspackConfig);
662658const devMiddlewareOptions = {
663659 // options
664660};
665661const app = new Koa ();
666662
667- app .use (middleware .koaWrapper (compiler, devMiddlewareOptions));
663+ app .use (devMiddleware .koaWrapper (compiler, devMiddlewareOptions));
668664
669665app .listen (3000 );
670666```
671667
672668### Hapi
673669
674670``` js
675- const Hapi = require ( " @hapi/hapi" ) ;
676- const { devMiddleware } = require ( " @rspack/dev-middleware " ) ;
677- const { rspack } = require ( " @rspack/core " ) ;
678- const rspackConfig = require ( " ./rspack.config.js" ) ;
671+ import Hapi from " @hapi/hapi" ;
672+ import { rspack } from " @rspack/core " ;
673+ import { devMiddleware } from " @rspack/dev-middleware " ;
674+ import rspackConfig from " ./rspack.config.js" ;
679675
680676const compiler = rspack (rspackConfig);
681677const devMiddlewareOptions = {};
@@ -704,10 +700,10 @@ process.on("unhandledRejection", (err) => {
704700### Hono
705701
706702``` js
703+ import { rspack } from " @rspack/core" ;
704+ import { devMiddleware } from " @rspack/dev-middleware" ;
707705import { serve } from " @hono/node-server" ;
708- import devMiddleware from " @rspack/dev-middleware" ;
709706import { Hono } from " hono" ;
710- import { rspack } from " @rspack/core" ;
711707import rspackConfig from " ./rspack.config.js" ;
712708
713709const compiler = rspack (rspackConfig);
0 commit comments