Skip to main content
Version: 6.x

Motiváció

Lemezhely megtakarítása és a telepítési sebesség növelése

npm vagy Yarn használatakor, ha egy csomag 100 projektnek a függősége, akkor annak a csomagnak 100 példánya lesz a lemezre írva. A pnpm használatával a függőség egy tartalommal címezett tárolóban lesz tárolva, ezért:

  1. Ha a függőség különböző verzióitól függ, csak az eltérő fájlok kerülnek a tárolóba. Például, ha 100 fájlja van, és egy új verzióban csak az egyik fájl különbözik, akkor egy pnpm update csak egy új fájlt ad hozzá a tárolóba ahelyett, hogy a teljes függőséget másolja egyetlen változás miatt.
  2. Az összes fájl egyetlen helyre kerül a lemezen. Amikor a csomagok telepítésre kerülnek, fájljaikat az adott helyről hardlinkelve vannak, ezért nem igényelnek több helyett a lemezen. Ez lehetővé teszi, hogy az azonos verziójú függőségeket megosszák maguk közott a különböző projektek a lemezen.

Ennek eredményeként rengeteg helyet takarít meg a lemezén a projekt és függőség számával arányosan, és sokkal gyorsabban települnek a függőségek!

Nem lapos node_modules létrehozása

When installing dependencies with npm or Yarn Classic, all packages are hoisted to the root of the modules directory. Ennek eredményeként a forráskód hozzáférhet olyan függőségekhez, amelyek nincsenek hozzáadva függőségként a projekthez.

By default, pnpm uses symlinks to add only the direct dependencies of the project into the root of the modules directory. If you'd like more details about the unique node_modules structure that pnpm creates and why it works fine with the Node.js ecosystem, read:

tip

If your tooling doesn't work well with symlinks, you may still use pnpm and set the node-linker setting to hoisted. This will instruct pnpm to create a node_modules directory that is similar to those created by npm and Yarn Classic.