mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-04-07 03:10:15 -04:00
Closes: https://github.com/gentoo/guru/pull/311 Signed-off-by: David Roman <davidroman96@gmail.com>
35 lines
1.8 KiB
XML
35 lines
1.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||
<pkgmetadata>
|
||
<!-- maintainer-needed -->
|
||
<longdescription lang="en">
|
||
* Fast. Up to 2x faster than the alternatives.
|
||
|
||
* Efficient. Files inside node_modules are linked from a single content-addressable storage
|
||
|
||
* Great for monorepos.
|
||
|
||
* Strict. A package can access only dependencies that are specified in its package.json.
|
||
|
||
* Deterministic. Has a lockfile called pnpm-lock.yaml.
|
||
|
||
* Works as a Node.js version manager.
|
||
|
||
* Battle-tested. Used in production by teams of all sizes since 2016.
|
||
|
||
To quote the Rush team "Microsoft uses pnpm in Rush repos with hundreds of projects and hundreds of PRs per day, and we’ve found it to be very fast and reliable".
|
||
|
||
pnpm uses a content-addressable filesystem to store all files from all module directories on a disk. When using npm, if you have 100 projects using lodash, you will have 100 copies of lodash on disk. With pnpm, lodash will be stored in a content-addressable storage, so:
|
||
|
||
* If you depend on different versions of lodash, only the files that differ are added to the store. If lodash has 100 files, and a new version has a change only in one of those files, pnpm update will only add 1 new file to the storage.
|
||
|
||
* All the files are saved in a single place on the disk. When packages are installed, their files are linked from that single place consuming no additional disk space. Linking is performed using either hard-links or reflinks (copy-on-write).
|
||
|
||
As a result, you save gigabytes of space on your disk and you have a lot faster installations!
|
||
</longdescription>
|
||
<upstream>
|
||
<remote-id type="github">pnpm/pnpm</remote-id>
|
||
<bugs-to>https://github.com/pnpm/pnpm/issues</bugs-to>
|
||
</upstream>
|
||
</pkgmetadata>
|