Skip to content

Commit 7542e6f

Browse files
authored
refactor(rsc): handle added/removed "use server" during dev (#753)
1 parent d2f2e71 commit 7542e6f

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

packages/plugin-rsc/src/plugin.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1399,7 +1399,10 @@ function vitePluginUseServer(
13991399
{
14001400
name: 'rsc:use-server',
14011401
async transform(code, id) {
1402-
if (!code.includes('use server')) return
1402+
if (!code.includes('use server')) {
1403+
delete manager.serverReferenceMetaMap[id]
1404+
return
1405+
}
14031406
const ast = await parseAstAsync(code)
14041407

14051408
let normalizedId_: string | undefined
@@ -1451,9 +1454,11 @@ function vitePluginUseServer(
14511454
`await __vite_rsc_encryption_runtime.decryptActionBoundArgs(${value})`
14521455
: undefined,
14531456
})
1454-
if (!result) return
14551457
const output = result.output
1456-
if (!output.hasChanged()) return
1458+
if (!result || !output.hasChanged()) {
1459+
delete manager.serverReferenceMetaMap[id]
1460+
return
1461+
}
14571462
manager.serverReferenceMetaMap[id] = {
14581463
importId: id,
14591464
referenceKey: getNormalizedId(),
@@ -1474,7 +1479,10 @@ function vitePluginUseServer(
14741479
map: output.generateMap({ hires: 'boundary' }),
14751480
}
14761481
} else {
1477-
if (!hasDirective(ast.body, 'use server')) return
1482+
if (!hasDirective(ast.body, 'use server')) {
1483+
delete manager.serverReferenceMetaMap[id]
1484+
return
1485+
}
14781486
const transformDirectiveProxyExport_ = withRollupError(
14791487
this,
14801488
transformDirectiveProxyExport,

0 commit comments

Comments
 (0)