Skip to main content

Pnpm

Struct Pnpm 

Source
pub struct Pnpm;
Expand description

PNPM package manager adapter.

Trait Implementations§

Source§

impl PackageManager for Pnpm

Source§

fn name(&self) -> &'static str

Returns the name of the package manager.

Source§

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>

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<()>

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<()>

Restores the dependencies using the lockfile.

Source§

fn lockfiles(&self) -> &'static [&'static str]

The file this manager rebuilds its bloat directory from. Read more
Source§

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 more
Source§

fn runtime_tag(&self, project_path: &Path, dir_name: &str) -> Option<String>

The language runtime a bloat directory is built against, recorded at prune time. Read more
Source§

fn drift(&self, project_path: &Path) -> Vec<DriftReport>

Installed-but-unrecorded packages, as data instead of a refusal. Read more
Source§

fn opt_in(&self) -> bool

Whether this adapter is inert until the user enables it in settings. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.