Skip to content

Commit f184c80

Browse files
authoredMar 22, 2024··
fix(optimizer): fix optimizeDeps.include glob syntax for ./* exports (#16230)
1 parent 9800c73 commit f184c80

File tree

9 files changed

+36
-0
lines changed

9 files changed

+36
-0
lines changed
 

‎packages/vite/src/node/optimizer/resolve.ts

+10
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,16 @@ export function expandGlobIds(id: string, config: ResolvedConfig): string[] {
9595
ignore: ['node_modules'],
9696
})
9797
.map((filePath) => {
98+
// ensure "./" prefix for inconsistent fast-glob result
99+
// glob.sync("./some-dir/**/*") -> "./some-dir/some-file"
100+
// glob.sync("./**/*") -> "some-dir/some-file"
101+
if (
102+
exportsValue.startsWith('./') &&
103+
!filePath.startsWith('./')
104+
) {
105+
filePath = './' + filePath
106+
}
107+
98108
// "./glob/*": "./dist/glob/*-browser/*.js"
99109
// `filePath`: "./dist/glob/foo-browser/foo.js"
100110
// we need to revert the file path back to the export key by

‎playground/optimize-deps/__tests__/optimize-deps.spec.ts

+4
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,10 @@ describe.runIf(isServe)('optimizeDeps config', () => {
304304
'@vitejs/test-dep-optimize-exports-with-glob/glob-dir/foo',
305305
'@vitejs/test-dep-optimize-exports-with-glob/glob-dir/bar',
306306
'@vitejs/test-dep-optimize-exports-with-glob/glob-dir/nested/baz',
307+
'@vitejs/test-dep-optimize-exports-with-root-glob',
308+
'@vitejs/test-dep-optimize-exports-with-root-glob/file1.js',
309+
'@vitejs/test-dep-optimize-exports-with-root-glob/index.js',
310+
'@vitejs/test-dep-optimize-exports-with-root-glob/dir/file2.js',
307311
'@vitejs/test-dep-optimize-with-glob',
308312
'@vitejs/test-dep-optimize-with-glob/index.js',
309313
'@vitejs/test-dep-optimize-with-glob/named.js',

‎playground/optimize-deps/dep-optimize-exports-with-root-glob/dir/file2.js

Whitespace-only changes.

‎playground/optimize-deps/dep-optimize-exports-with-root-glob/file1.js

Whitespace-only changes.

‎playground/optimize-deps/dep-optimize-exports-with-root-glob/index.js

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"name": "@vitejs/test-dep-optimize-exports-with-root-glob",
3+
"private": true,
4+
"version": "1.0.0",
5+
"type": "module",
6+
"exports": {
7+
".": "./index.js",
8+
"./*": "./*"
9+
}
10+
}

‎playground/optimize-deps/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"@vitejs/test-dep-node-env": "file:./dep-node-env",
2727
"@vitejs/test-dep-not-js": "file:./dep-not-js",
2828
"@vitejs/test-dep-optimize-exports-with-glob": "file:./dep-optimize-exports-with-glob",
29+
"@vitejs/test-dep-optimize-exports-with-root-glob": "file:./dep-optimize-exports-with-root-glob",
2930
"@vitejs/test-dep-optimize-with-glob": "file:./dep-optimize-with-glob",
3031
"@vitejs/test-dep-relative-to-main": "file:./dep-relative-to-main",
3132
"@vitejs/test-dep-with-builtin-module-cjs": "file:./dep-with-builtin-module-cjs",

‎playground/optimize-deps/vite.config.js

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export default defineConfig({
2020
// will throw if optimized (should log warning instead)
2121
'@vitejs/test-non-optimizable-include',
2222
'@vitejs/test-dep-optimize-exports-with-glob/**/*',
23+
'@vitejs/test-dep-optimize-exports-with-root-glob/**/*.js',
2324
'@vitejs/test-dep-optimize-with-glob/**/*.js',
2425
],
2526
exclude: ['@vitejs/test-nested-exclude', '@vitejs/test-dep-non-optimized'],

‎pnpm-lock.yaml

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
Please sign in to comment.