Commit 943aa3b 1 parent 6a6f859 commit 943aa3b Copy full SHA for 943aa3b
File tree 1 file changed +23
-8
lines changed
packages/bundler-vite/src/server
1 file changed +23
-8
lines changed Original file line number Diff line number Diff line change @@ -50,23 +50,38 @@ export async function createServer(opts: IOpts) {
50
50
server : { middlewareMode : 'html' } ,
51
51
} ) ;
52
52
53
+ // before middlewares
54
+ opts . beforeMiddlewares ?. forEach ( ( m ) => app . use ( m ) ) ;
55
+
56
+ // after middlewares, insert before vite spaFallbackMiddleware
57
+ // refer: https://github.com/vitejs/vite/blob/2c586165d7bc4b60f8bcf1f3b462b97a72cce58c/packages/vite/src/node/server/index.ts#L508
58
+ if ( opts . afterMiddlewares ?. length ) {
59
+ vite . middlewares . stack . some ( ( s , i ) => {
60
+ if ( ( s . handle as Function ) . name === 'viteSpaFallbackMiddleware' ) {
61
+ const afterStacks : typeof vite . middlewares . stack =
62
+ opts . afterMiddlewares ! . map ( ( handle ) => ( {
63
+ route : '' ,
64
+ handle,
65
+ } ) ) ;
66
+
67
+ vite . middlewares . stack . splice ( i , 0 , ...afterStacks ) ;
68
+
69
+ return true ;
70
+ }
71
+
72
+ return false ;
73
+ } ) ;
74
+ }
75
+
53
76
// use vite via middleware way
54
77
app . use ( vite . middlewares ) ;
55
78
56
- // before middlewares
57
- ( opts . beforeMiddlewares || [ ] ) . forEach ( ( m ) => app . use ( m ) ) ;
58
-
59
79
// writeToDisk(?)
60
80
// mock
61
81
// prerender
62
82
// bundless
63
83
64
- // after middlewares
65
- console . log ( 'test' , opts . afterMiddlewares ) ;
66
- ( opts . afterMiddlewares || [ ] ) . forEach ( ( m ) => app . use ( m ) ) ;
67
-
68
84
const server = http . createServer ( app ) ;
69
-
70
85
const port = process . env . PORT || 8000 ;
71
86
72
87
server . listen ( port , async ( ) => {
You can’t perform that action at this time.
0 commit comments