mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 02:48:24 +00:00
refactor(compile): store the npm snapshot in the eszip (#19343)
This commit is contained in:
parent
976c381045
commit
55f0150854
13 changed files with 104 additions and 67 deletions
|
@ -18,7 +18,6 @@ use deno_core::futures::AsyncSeekExt;
|
|||
use deno_core::serde_json;
|
||||
use deno_core::url::Url;
|
||||
use deno_npm::registry::PackageDepNpmSchemeValueParseError;
|
||||
use deno_npm::resolution::SerializedNpmResolutionSnapshot;
|
||||
use deno_npm::NpmSystemInfo;
|
||||
use deno_runtime::permissions::PermissionsOptions;
|
||||
use deno_semver::npm::NpmPackageReq;
|
||||
|
@ -140,7 +139,6 @@ pub struct Metadata {
|
|||
pub entrypoint: ModuleSpecifier,
|
||||
/// Whether this uses a node_modules directory (true) or the global cache (false).
|
||||
pub node_modules_dir: bool,
|
||||
pub npm_snapshot: Option<SerializedNpmResolutionSnapshot>,
|
||||
pub package_json_deps: Option<SerializablePackageJsonDeps>,
|
||||
}
|
||||
|
||||
|
@ -475,7 +473,7 @@ impl<'a> DenoCompileBinaryWriter<'a> {
|
|||
&self,
|
||||
writer: &mut impl Write,
|
||||
original_bin: Vec<u8>,
|
||||
eszip: eszip::EszipV2,
|
||||
mut eszip: eszip::EszipV2,
|
||||
entrypoint: &ModuleSpecifier,
|
||||
cli_options: &CliOptions,
|
||||
compile_flags: &CompileFlags,
|
||||
|
@ -492,14 +490,16 @@ impl<'a> DenoCompileBinaryWriter<'a> {
|
|||
.resolve_import_map(self.file_fetcher)
|
||||
.await?
|
||||
.map(|import_map| (import_map.base_url().clone(), import_map.to_json()));
|
||||
let (npm_snapshot, npm_vfs, npm_files) =
|
||||
if self.npm_resolution.has_packages() {
|
||||
let (root_dir, files) = self.build_vfs()?.into_dir_and_files();
|
||||
let snapshot = self.npm_resolution.serialized_snapshot();
|
||||
(Some(snapshot), Some(root_dir), files)
|
||||
} else {
|
||||
(None, None, Vec::new())
|
||||
};
|
||||
let (npm_vfs, npm_files) = if self.npm_resolution.has_packages() {
|
||||
let (root_dir, files) = self.build_vfs()?.into_dir_and_files();
|
||||
let snapshot = self
|
||||
.npm_resolution
|
||||
.serialized_valid_snapshot_for_system(&self.npm_system_info);
|
||||
eszip.add_npm_snapshot(snapshot);
|
||||
(Some(root_dir), files)
|
||||
} else {
|
||||
(None, Vec::new())
|
||||
};
|
||||
|
||||
let metadata = Metadata {
|
||||
argv: compile_flags.args.clone(),
|
||||
|
@ -517,7 +517,6 @@ impl<'a> DenoCompileBinaryWriter<'a> {
|
|||
entrypoint: entrypoint.clone(),
|
||||
maybe_import_map,
|
||||
node_modules_dir: self.npm_resolver.node_modules_path().is_some(),
|
||||
npm_snapshot,
|
||||
package_json_deps: self
|
||||
.package_json_deps_provider
|
||||
.deps()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue