pub struct Pnpm;Expand description
PNPM package manager adapter.
Trait Implementations§
Source§impl PackageManager for Pnpm
impl PackageManager for Pnpm
Source§fn detect(&self, project_dir: &Path) -> bool
fn detect(&self, project_dir: &Path) -> bool
Detects if the project uses pnpm by checking for pnpm-lock.yaml.
Source§fn bloat_dirs(&self, project_dir: &Path) -> Vec<BloatDir>
fn bloat_dirs(&self, project_dir: &Path) -> Vec<BloatDir>
Returns the bloat directories for pnpm (node_modules).
pnpm does not copy packages into node_modules — it hardlinks them out of its
content-addressable store whenever the store and the project sit on the same
volume (NTFS included; Windows hardlinks work fine). Deleting such a tree frees
only pnpm’s own metadata and any genuinely copied files: the store keeps every
linked byte. Counting apparent size here would promise gigabytes and deliver
megabytes, so the split is measured per file via the link count.
Source§fn enforce_lockfile(
&self,
project_dir: &Path,
policy: EnforcePolicy,
) -> Result<()>
fn enforce_lockfile( &self, project_dir: &Path, policy: EnforcePolicy, ) -> Result<()>
Enforces the lockfile without installing anything, and without writing.
--lockfile-only resolves package.json and touches no node_modules, but on
its own it writes the resolution back to pnpm-lock.yaml. --frozen-lockfile
turns that write into a failure, which is the answer we actually want: a lockfile
that no longer matches the manifest cannot rebuild the tree we are about to
delete, so the prune should be refused rather than the file quietly fixed.
Source§fn restore(&self, project_dir: &Path, timeout: Duration) -> Result<()>
fn restore(&self, project_dir: &Path, timeout: Duration) -> Result<()>
Restores the dependencies using the lockfile.
Source§fn lockfiles(&self) -> &'static [&'static str]
fn lockfiles(&self) -> &'static [&'static str]
Source§fn restore_named(
&self,
project_path: &Path,
dir_name: &str,
runtime: Option<&str>,
timeout: Duration,
) -> Result<()>
fn restore_named( &self, project_path: &Path, dir_name: &str, runtime: Option<&str>, timeout: Duration, ) -> Result<()>
PackageManager::restore, told the name the pruned directory had. Read moreSource§fn runtime_tag(&self, project_path: &Path, dir_name: &str) -> Option<String>
fn runtime_tag(&self, project_path: &Path, dir_name: &str) -> Option<String>
Auto Trait Implementations§
impl Freeze for Pnpm
impl RefUnwindSafe for Pnpm
impl Send for Pnpm
impl Sync for Pnpm
impl Unpin for Pnpm
impl UnsafeUnpin for Pnpm
impl UnwindSafe for Pnpm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more