From 28aa489de9cd4f995ec2fc02e2c9d224e89f4c01 Mon Sep 17 00:00:00 2001 From: David Sherret Date: Wed, 10 May 2023 20:06:59 -0400 Subject: feat(compile): unstable npm and node specifier support (#19005) This is the initial support for npm and node specifiers in `deno compile`. The npm packages are included in the binary and read from it via a virtual file system. This also supports the `--node-modules-dir` flag, dependencies specified in a package.json, and npm binary commands (ex. `deno compile --unstable npm:cowsay`) Closes #16632 --- cli/npm/resolvers/local.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'cli/npm/resolvers/local.rs') diff --git a/cli/npm/resolvers/local.rs b/cli/npm/resolvers/local.rs index 038d9eea1..cd1dc3671 100644 --- a/cli/npm/resolvers/local.rs +++ b/cli/npm/resolvers/local.rs @@ -154,7 +154,7 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { loop { current_folder = get_next_node_modules_ancestor(current_folder); let sub_dir = join_package_name(current_folder, name); - if sub_dir.is_dir() { + if self.fs.is_dir(&sub_dir) { // if doing types resolution, only resolve the package if it specifies a types property if mode.is_types() && !name.starts_with("@types/") { let package_json = PackageJson::load_skip_read_permission( @@ -173,7 +173,7 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { if mode.is_types() && !name.starts_with("@types/") { let sub_dir = join_package_name(current_folder, &types_package_name(name)); - if sub_dir.is_dir() { + if self.fs.is_dir(&sub_dir) { return Ok(sub_dir); } } @@ -214,6 +214,7 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { path: &Path, ) -> Result<(), AnyError> { ensure_registry_read_permission( + &self.fs, permissions, &self.root_node_modules_path, path, -- cgit v1.2.3