Skip to content

Commit fc84156

Browse files
authored
fix: inject middleware correctly when there's multiple plugin instances (#186)
1 parent ff6630c commit fc84156

File tree

4 files changed

+22
-4
lines changed

4 files changed

+22
-4
lines changed

.changeset/brave-phones-read.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'vite-plugin-static-copy': patch
3+
---
4+
5+
fix a bug that the content was not sent when multiple vite-plugin-static-copy instance was used

src/serve.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,14 @@ export const servePlugin = ({
123123
return () => {
124124
// insert serveStaticCopyMiddleware before viteServePublicMiddleware
125125
// if viteServePublicMiddleware didn't exist use transformMiddleware instead
126-
middlewares.use(serveStaticCopyMiddleware(config, fileMap))
126+
const middleware = serveStaticCopyMiddleware(config, fileMap)
127+
middlewares.use(middleware)
127128
const targetMiddlewareIndex = findMiddlewareIndex(middlewares.stack, [
128129
'viteServePublicMiddleware',
129130
'viteTransformMiddleware',
130131
])
131-
const serveStaticCopyMiddlewareIndex = findMiddlewareIndex(
132-
middlewares.stack,
133-
'viteServeStaticCopyMiddleware',
132+
const serveStaticCopyMiddlewareIndex = middlewares.stack.findIndex(
133+
(item) => item.handle === middleware,
134134
)
135135

136136
const serveStaticCopyMiddlewareItem = middlewares.stack.splice(

test/fixtures/vite.config.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,13 @@ export default defineConfig({
148148
{ src: 'eexist/*', dest: 'Eexist' },
149149
],
150150
}),
151+
viteStaticCopy({
152+
targets: [
153+
{
154+
src: 'foo.txt',
155+
dest: 'fixture1-1',
156+
},
157+
],
158+
}),
151159
],
152160
})

test/testcases.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,11 @@ export const testcases: Record<string, Testcase[]> = {
151151
src: './eexist/b/1.txt',
152152
dest: '/eexist/b/1.txt',
153153
},
154+
{
155+
name: 'multiple plugin instance',
156+
src: './foo.txt',
157+
dest: '/fixture1-1/foo.txt',
158+
},
154159
],
155160
'vite.absolute.config.ts': [
156161
{

0 commit comments

Comments
 (0)