summaryrefslogtreecommitdiff
path: root/cli/npm/resolvers/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/npm/resolvers/mod.rs')
-rw-r--r--cli/npm/resolvers/mod.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/cli/npm/resolvers/mod.rs b/cli/npm/resolvers/mod.rs
index f7c65c9e9..23cbde5d9 100644
--- a/cli/npm/resolvers/mod.rs
+++ b/cli/npm/resolvers/mod.rs
@@ -104,10 +104,16 @@ impl NpmPackageResolver {
/// This function will replace current resolver with a new one built from a
/// snapshot created out of the lockfile.
- pub async fn add_lockfile(
+ pub async fn add_lockfile_and_maybe_regenerate_snapshot(
&mut self,
lockfile: Arc<Mutex<Lockfile>>,
) -> Result<(), AnyError> {
+ self.maybe_lockfile = Some(lockfile.clone());
+
+ if lockfile.lock().overwrite {
+ return Ok(());
+ }
+
let snapshot =
NpmResolutionSnapshot::from_lockfile(lockfile.clone(), &self.api)
.await
@@ -117,7 +123,6 @@ impl NpmPackageResolver {
lockfile.lock().filename.display()
)
})?;
- self.maybe_lockfile = Some(lockfile);
if let Some(node_modules_folder) = &self.local_node_modules_path {
self.inner = Arc::new(LocalNpmPackageResolver::new(
self.cache.clone(),