summaryrefslogtreecommitdiff
path: root/cli/args/lockfile.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/args/lockfile.rs')
-rw-r--r--cli/args/lockfile.rs16
1 files changed, 14 insertions, 2 deletions
diff --git a/cli/args/lockfile.rs b/cli/args/lockfile.rs
index 84cad98d4..d5ab14432 100644
--- a/cli/args/lockfile.rs
+++ b/cli/args/lockfile.rs
@@ -3,11 +3,14 @@
use std::path::PathBuf;
use deno_core::error::AnyError;
+use deno_runtime::deno_node::PackageJson;
use crate::args::ConfigFile;
use crate::Flags;
use super::DenoSubcommand;
+use super::InstallFlags;
+use super::InstallKind;
pub use deno_lockfile::Lockfile;
pub use deno_lockfile::LockfileError;
@@ -15,11 +18,15 @@ pub use deno_lockfile::LockfileError;
pub fn discover(
flags: &Flags,
maybe_config_file: Option<&ConfigFile>,
+ maybe_package_json: Option<&PackageJson>,
) -> Result<Option<Lockfile>, AnyError> {
if flags.no_lock
|| matches!(
flags.subcommand,
- DenoSubcommand::Install(_) | DenoSubcommand::Uninstall(_)
+ DenoSubcommand::Install(InstallFlags {
+ kind: InstallKind::Global(..),
+ ..
+ }) | DenoSubcommand::Uninstall(_)
)
{
return Ok(None);
@@ -38,7 +45,12 @@ pub fn discover(
return Ok(None);
}
}
- None => return Ok(None),
+ None => match maybe_package_json {
+ Some(package_json) => {
+ package_json.path.parent().unwrap().join("deno.lock")
+ }
+ None => return Ok(None),
+ },
},
};