From 074609b9232b9413e73881baba02bd0d2e778183 Mon Sep 17 00:00:00 2001 From: ijiefeng Date: Tue, 3 Sep 2024 23:00:21 +0800 Subject: [PATCH 1/3] fix(vite): conditional exports can't be active when key is browser #18012 --- packages/vite/src/node/plugins/resolve.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index c9facf7cfc5f8e..28b591823aa869 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -1110,7 +1110,9 @@ function resolveExportsOrImports( const fn = type === 'imports' ? imports : exports const result = fn(pkg, key, { - browser: targetWeb && !additionalConditions.has('node'), + browser: + additionalConditions.has('browser') || + (targetWeb && !additionalConditions.has('node')), require: options.isRequire && !additionalConditions.has('import'), conditions, }) From fce01c531032fb6e568ef2c486af94eb88c45a9f Mon Sep 17 00:00:00 2001 From: ijiefeng Date: Tue, 10 Sep 2024 17:08:39 +0800 Subject: [PATCH 2/3] chore: resolve conflict --- packages/vite/src/node/plugins/resolve.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index 2abacbf9d2caea..6c623e5ebf0b7a 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -1160,7 +1160,10 @@ function resolveExportsOrImports( const fn = type === 'imports' ? imports : exports const result = fn(pkg, key, { - browser: options.webCompatible && !additionalConditions.has('node'), + browser: + additionalConditions.has('browser') && + options.webCompatible && + !additionalConditions.has('node'), require: options.isRequire && !additionalConditions.has('import'), conditions, }) From abff16e2c8ec83e3a90eda199017b8b2c16e8407 Mon Sep 17 00:00:00 2001 From: ijiefeng Date: Tue, 10 Sep 2024 17:09:10 +0800 Subject: [PATCH 3/3] fix: conditional logic wrong --- packages/vite/src/node/plugins/resolve.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index 6c623e5ebf0b7a..6a26a6413ceba9 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -1161,9 +1161,8 @@ function resolveExportsOrImports( const fn = type === 'imports' ? imports : exports const result = fn(pkg, key, { browser: - additionalConditions.has('browser') && - options.webCompatible && - !additionalConditions.has('node'), + additionalConditions.has('browser') || + (options.webCompatible && !additionalConditions.has('node')), require: options.isRequire && !additionalConditions.has('import'), conditions, })