Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
@pnpm/lockfile-file
Advanced tools
@pnpm/lockfile-file is a utility package for handling lockfiles in the pnpm package manager. It provides functionalities to read, write, and manipulate lockfiles, which are essential for ensuring consistent and reproducible builds in a pnpm-managed project.
Read Lockfile
This feature allows you to read the wanted lockfile from a specified directory. The `readWantedLockfile` function reads the lockfile and returns its contents, which can be used for further processing or analysis.
const { readWantedLockfile } = require('@pnpm/lockfile-file');
const lockfile = readWantedLockfile('/path/to/project', { ignoreIncompatible: false });
console.log(lockfile);
Write Lockfile
This feature allows you to write a lockfile to a specified directory. The `writeWantedLockfile` function takes the directory path and the lockfile content as arguments and writes the lockfile to the specified location.
const { writeWantedLockfile } = require('@pnpm/lockfile-file');
const lockfile = { /* lockfile content */ };
writeWantedLockfile('/path/to/project', lockfile);
console.log('Lockfile written successfully');
Update Lockfile
This feature allows you to update an existing lockfile with new information. The `updateLockfile` function takes the current lockfile content and the updates as arguments and returns the updated lockfile.
const { updateLockfile } = require('@pnpm/lockfile-file');
const lockfile = { /* existing lockfile content */ };
const updatedLockfile = updateLockfile(lockfile, { /* updates */ });
console.log(updatedLockfile);
The `lockfile` package is a generic library for reading and writing lockfiles. It is not specific to any package manager and can be used for various purposes. Compared to @pnpm/lockfile-file, it offers more general functionalities but lacks pnpm-specific features.
The `yarnlockfile` package is a utility for parsing and stringifying Yarn lockfiles. It is specific to the Yarn package manager and provides functionalities similar to @pnpm/lockfile-file but for Yarn. It does not support pnpm lockfiles.
The `npm-lockfile` package is a utility for working with npm lockfiles. It provides functionalities to read, write, and manipulate npm lockfiles. While it offers similar features to @pnpm/lockfile-file, it is tailored for npm and does not support pnpm lockfiles.
Read/write pnpm-lock.yaml files
Reads and writes the wanted (pnpm-lock.yaml
) and current (node_modules/.pnpm-lock.yaml
) lockfile files of pnpm.
Lockfile files are the state files of the node_modules
installed via pnpm. They are like
the package-lock.json
of npm or the yarn.lock
of Yarn.
pnpm add @pnpm/lockfile-file
readWantedLockfile(pkgPath, opts) => Promise<Lockfile>
Reads the pnpm-lock.yaml
file from the root of the package.
pkgPath
- Path - the path to the projectopts.ignoreIncompatible
- Boolean - false
by default. If true
, throws an error
if the lockfile file format is not compatible with the current library.readCurrentLockfile(virtualStoreDir, opts) => Promise<Lockfile>
Reads the lockfile file from <virtualStoreDir>/lock.yaml
.
existsWantedLockfile(pkgPath) => Promise<Boolean>
Returns true
if a pnpm-lock.yaml
exists in the root of the package.
writeLockfiles(opts) => Promise<void>
Writes the wanted/current lockfile files. When they are empty, removes them.
opts.wantedLockfile
opts.wantedLockfileDir
opts.currentLockfile
opts.currentLockfileDir
[opts.forceSharedFormat]
writeWantedLockfile(pkgPath, wantedLockfile) => Promise<void>
Writes the wanted lockfile file only. Sometimes it is needed just to update the wanted lockfile
without touching node_modules
.
writeCurrentLockfile(virtualStoreDir, currentLockfile) => Promise<void>
Writes the current lockfile file only.
FAQs
Read/write pnpm-lock.yaml files
We found that @pnpm/lockfile-file demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.