@@ -42,8 +42,21 @@ export async function getPackagesManifest(reader: RolldownEventsReader) {
4242 }
4343 } )
4444 await Promise . all ( packages . map ( async ( p ) => {
45- const manifest = await readProjectManifestOnly ( p . dir )
46- const packageKey = `${ manifest . name ! } @${ manifest . version ! } `
45+ let packageKey = ''
46+ let manifest = null
47+
48+ try {
49+ manifest = await readProjectManifestOnly ( p . dir )
50+ packageKey = `${ manifest . name ! } @${ manifest . version ! } `
51+ }
52+ catch ( err : any ) {
53+ if ( err ?. code === 'ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND' ) {
54+ packageKey = `${ p . dir } `
55+ }
56+ else {
57+ throw err
58+ }
59+ }
4760 const packageInfo = packagesManifest . get ( packageKey )
4861 const importers = getImporters ( p . path , p . dir ) . map ( i => ( { path : i , version : '' } ) )
4962 if ( packageInfo ) {
@@ -59,8 +72,8 @@ export async function getPackagesManifest(reader: RolldownEventsReader) {
5972 }
6073 else {
6174 packagesManifest . set ( packageKey , {
62- name : manifest . name ! ,
63- version : manifest . version ! ,
75+ name : manifest ? .name || p . dir ,
76+ version : manifest ? .version || '(unknown)' ,
6477 dir : p . dir ,
6578 files : [ {
6679 path : p . path ,
@@ -101,7 +114,17 @@ export const rolldownGetPackages = defineRpcFunction({
101114 if ( duplicated ) {
102115 files = await Promise . all ( files . map ( async ( f ) => {
103116 const importers = await Promise . all ( f . importers . map ( async ( i ) => {
104- const manifest = isNodeModulePath ( i . path ) ? await readProjectManifestOnly ( getPackageDirPath ( i . path ) ) : null
117+ let manifest = null
118+ try {
119+ if ( isNodeModulePath ( i . path ) ) {
120+ manifest = await readProjectManifestOnly ( getPackageDirPath ( i . path ) )
121+ }
122+ }
123+ catch ( err : any ) {
124+ if ( err ?. code !== 'ERR_PNPM_NO_IMPORTER_MANIFEST_FOUND' ) {
125+ throw err
126+ }
127+ }
105128 return { ...i , version : manifest ?. version ?? '' }
106129 } ) )
107130 return { ...f , importers }
0 commit comments