From ae067210b65df62a22631f38fe08f1c4f2dfd32e Mon Sep 17 00:00:00 2001 From: Jinjiang Date: Fri, 31 Jan 2025 15:48:45 +0800 Subject: [PATCH 1/5] fix: avoid packageJson without name in resolveLibCssFilename --- packages/vite/src/node/plugins/css.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index c088bbb4f7963a..c6117142a8730a 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -3463,7 +3463,7 @@ export function resolveLibCssFilename( } const packageJson = findNearestPackageData(root, packageCache)?.data - const name = packageJson ? getPkgName(packageJson.name) : undefined + const name = (packageJson && packageJson.name) ? getPkgName(packageJson.name) : undefined if (!name) throw new Error( From 6f1e7447d249c54128aac810db3b693ad6da62dd Mon Sep 17 00:00:00 2001 From: Jinjiang Date: Fri, 31 Jan 2025 15:53:26 +0800 Subject: [PATCH 2/5] Update css.ts --- packages/vite/src/node/plugins/css.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index c6117142a8730a..a2a0f91a9a8455 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -3463,7 +3463,8 @@ export function resolveLibCssFilename( } const packageJson = findNearestPackageData(root, packageCache)?.data - const name = (packageJson && packageJson.name) ? getPkgName(packageJson.name) : undefined + const name = + packageJson && packageJson.name ? getPkgName(packageJson.name) : undefined if (!name) throw new Error( From 635521f8c91379c78f287a3db70daef67bebf8e6 Mon Sep 17 00:00:00 2001 From: Jinjiang Date: Tue, 4 Feb 2025 10:49:10 +0800 Subject: [PATCH 3/5] fix: reuse findNearestMainPackageData at more places --- packages/vite/src/node/build.ts | 4 ++-- packages/vite/src/node/plugins/css.ts | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 53f979655e9885..cb4885846aa136 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -60,7 +60,7 @@ import { dataURIPlugin } from './plugins/dataUri' import { buildImportAnalysisPlugin } from './plugins/importAnalysisBuild' import { ssrManifestPlugin } from './ssr/ssrManifestPlugin' import { buildLoadFallbackPlugin } from './plugins/loadFallback' -import { findNearestPackageData } from './packages' +import { findNearestMainPackageData, findNearestPackageData } from './packages' import type { PackageCache } from './packages' import { getResolvedOutDirs, @@ -919,7 +919,7 @@ export function resolveLibFilename( return libOptions.fileName(format, entryName) } - const packageJson = findNearestPackageData(root, packageCache)?.data + const packageJson = findNearestMainPackageData(root, packageCache)?.data const name = libOptions.fileName || (packageJson && typeof libOptions.entry === 'string' diff --git a/packages/vite/src/node/plugins/css.ts b/packages/vite/src/node/plugins/css.ts index a2a0f91a9a8455..9bd38d4682958e 100644 --- a/packages/vite/src/node/plugins/css.ts +++ b/packages/vite/src/node/plugins/css.ts @@ -91,7 +91,7 @@ import type { TransformPluginContext } from '../server/pluginContainer' import { searchForWorkspaceRoot } from '../server/searchRoot' import { type DevEnvironment } from '..' import type { PackageCache } from '../packages' -import { findNearestPackageData } from '../packages' +import { findNearestMainPackageData } from '../packages' import { addToHTMLProxyTransformResult } from './html' import { assetUrlRE, @@ -3462,9 +3462,8 @@ export function resolveLibCssFilename( return `${libOptions.fileName}.css` } - const packageJson = findNearestPackageData(root, packageCache)?.data - const name = - packageJson && packageJson.name ? getPkgName(packageJson.name) : undefined + const packageJson = findNearestMainPackageData(root, packageCache)?.data + const name = packageJson ? getPkgName(packageJson.name) : undefined if (!name) throw new Error( From 3084ac92a4f659773c5e22a401e3de3a9ea73863 Mon Sep 17 00:00:00 2001 From: Jinjiang Date: Tue, 4 Feb 2025 15:46:33 +0800 Subject: [PATCH 4/5] fix: tests for new behavior of resolveLibFilename() --- .../vite/src/node/__tests__/build.spec.ts | 19 +++++++++---------- .../__tests__/packages/module/package.json | 1 + .../src/node/__tests__/packages/package.json | 3 +++ 3 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 packages/vite/src/node/__tests__/packages/package.json diff --git a/packages/vite/src/node/__tests__/build.spec.ts b/packages/vite/src/node/__tests__/build.spec.ts index 8f4e8f5455056c..d0a9750763c055 100644 --- a/packages/vite/src/node/__tests__/build.spec.ts +++ b/packages/vite/src/node/__tests__/build.spec.ts @@ -410,16 +410,15 @@ describe('resolveLibFilename', () => { }) test('missing filename', () => { - expect(() => { - resolveLibFilename( - { - entry: 'mylib.js', - }, - 'es', - 'myLib', - resolve(__dirname, 'packages/noname'), - ) - }).toThrow() + const filename = resolveLibFilename( + { + entry: 'mylib.js', + }, + 'es', + 'myLib', + resolve(__dirname, 'packages/noname'), + ) + expect(filename).toBe('named-testing-package.mjs') }) test('commonjs package extensions', () => { diff --git a/packages/vite/src/node/__tests__/packages/module/package.json b/packages/vite/src/node/__tests__/packages/module/package.json index 3dbc1ca591c055..67756e1d2c410e 100644 --- a/packages/vite/src/node/__tests__/packages/module/package.json +++ b/packages/vite/src/node/__tests__/packages/module/package.json @@ -1,3 +1,4 @@ { + "name": "mylib", "type": "module" } diff --git a/packages/vite/src/node/__tests__/packages/package.json b/packages/vite/src/node/__tests__/packages/package.json new file mode 100644 index 00000000000000..bd6442dcacf7c9 --- /dev/null +++ b/packages/vite/src/node/__tests__/packages/package.json @@ -0,0 +1,3 @@ +{ + "name": "named-testing-package" +} From 75b88f38c0aafd96d2cfe16a6440dbff3b9653ec Mon Sep 17 00:00:00 2001 From: Jinjiang Date: Tue, 4 Feb 2025 15:48:56 +0800 Subject: [PATCH 5/5] chore: update pnpm lock file --- pnpm-lock.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e65839d192138..da9425ccf81460 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -433,6 +433,8 @@ importers: packages/vite/src/node/__tests__/fixtures/test-dep-conditions: {} + packages/vite/src/node/__tests__/packages: {} + packages/vite/src/node/__tests__/packages/child: {} packages/vite/src/node/__tests__/packages/module: {}