fix(compile): do not error including npm packages that don't match current system (#30188)

Part of https://github.com/denoland/deno/issues/30177
This commit is contained in:
David Sherret 2025-07-24 16:11:43 -04:00 committed by GitHub
parent 3a5ba56801
commit 4850b3ba91
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -867,10 +867,21 @@ impl<'a> DenoCompileBinaryWriter<'a> {
.resolution()
.all_system_packages(&self.npm_system_info);
packages.sort_by(|a, b| a.id.cmp(&b.id)); // determinism
let current_system = NpmSystemInfo::default();
for package in packages {
let folder =
npm_resolver.resolve_pkg_folder_from_pkg_id(&package.id)?;
builder.add_dir_recursive(&folder)?;
if !package.system.matches_system(&current_system)
&& !folder.exists()
{
log::warn!(
"{} Ignoring 'npm:{}' because it was not present on the current system.",
crate::colors::yellow("Warning"),
package.id
);
} else {
builder.add_dir_recursive(&folder)?;
}
}
Ok(())
}