Skip to content

Commit f92ed86

Browse files
committed
fix: respect resolve.conditions during nodeResolve
Upstream: #13487
1 parent 21a62da commit f92ed86

12 files changed

Lines changed: 52 additions & 2 deletions

File tree

packages/vite/src/node/ssr/ssrModuleLoader.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,15 @@ async function instantiateModule(
121121

122122
const {
123123
isProduction,
124-
resolve: { dedupe, preserveSymlinks },
124+
resolve: { dedupe, preserveSymlinks, conditions },
125125
root,
126126
} = server.config
127127

128128
const resolveOptions: InternalResolveOptionsWithOverrideConditions = {
129129
mainFields: ['main'],
130130
browserField: true,
131131
conditions: [],
132-
overrideConditions: ['production', 'development'],
132+
overrideConditions: [...conditions, 'production', 'development'],
133133
extensions: ['.js', '.cjs', '.json'],
134134
dedupe,
135135
preserveSymlinks,

playground/ssr-deps/__tests__/ssr-deps.spec.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,13 @@ test('import css library', async () => {
122122
expect(await page.textContent('.module-condition')).toMatch('[success]')
123123
})
124124

125+
test('import react/server/server.node.unbundled.js', async () => {
126+
await page.goto(url)
127+
expect(await page.textContent('.react-server')).toMatch(
128+
'server.node.unbundled.js',
129+
)
130+
})
131+
125132
describe.runIf(isServe)('hmr', () => {
126133
test('handle isomorphic module updates', async () => {
127134
await page.goto(url)

playground/ssr-deps/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"@vitejs/test-object-assigned-exports": "file:./object-assigned-exports",
1818
"@vitejs/test-only-object-assigned-exports": "file:./only-object-assigned-exports",
1919
"@vitejs/test-primitive-export": "file:./primitive-export",
20+
"@vitejs/test-react-server": "file:./react-server",
2021
"@vitejs/test-read-file-content": "file:./read-file-content",
2122
"@vitejs/test-require-absolute": "file:./require-absolute",
2223
"@vitejs/test-ts-transpiled-exports": "file:./ts-transpiled-exports",
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "@vitejs/test-react-server",
3+
"private": true,
4+
"type": "module",
5+
"version": "0.0.0",
6+
"exports": {
7+
"./server": {
8+
"react-server": {
9+
"workerd": "./server.edge.js",
10+
"deno": "./server.browser.js",
11+
"node": {
12+
"webpack": "./server.node.js",
13+
"default": "./server.node.unbundled.js"
14+
},
15+
"edge-light": "./server.edge.js",
16+
"browser": "./server.browser.js"
17+
},
18+
"default": "./server.js"
19+
}
20+
}
21+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'server.browser.js'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'server.edge.js'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'server.js'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'server.node.js'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default 'server.node.unbundled.js'

playground/ssr-deps/server.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ export async function createServer(root = process.cwd(), hmrPort) {
2121
).createServer({
2222
root,
2323
logLevel: isTest ? 'error' : 'info',
24+
resolve: {
25+
conditions: ['react-server'],
26+
},
2427
server: {
2528
middlewareMode: true,
2629
watch: {

0 commit comments

Comments
 (0)