Ana içeriğe atla
Sürüm: Gelecek

pnpm add <paket-adı>

Belirtilen paketi ve bağımlı olduğu diğer paketleri yükler. Komutun varsayılan eylemi, eklemek istenilen paketi production seviyesinde, yani dependencies kısmına tanımlayarak yükler.

Kısaca;

Komutİşlevi
pnpm add saxdependencies kısmına tanımlayarak yükler
pnpm add -D saxdevDependencies kısmına tanımlayarak yükler
pnpm add -O saxoptionalDependencies kısmına tanımlayarak yükler
pnpm add -g saxPaketi global olarak yükler
pnpm add sax@nextPaketin, next etiketli sürümünü yükler
pnpm add sax@3.0.0Paketin, 3.0.0 sürümünü yükler

Desteklenen paket kaynakları/konumları

npm kayıtlarından yükleme

pnpm add paket-ismi, paket-ismi paketinin son sürümünü varsayılan olarak npm veri tabanı'ndan yükler.

Bir çalışma alanında yürütülürse, komut önce projenin belirtilen paketi kullanıp kullanmadığını kontrol etmeye çalışır. Bu durumda, halihazırda kullanılan sürüm aralığı yüklenecektir.

Paket kurulumunu aşağıdaki alternatif örneklerle de yapabilirsin:

  • tag/etiket belirterek: pnpm add express@nightly
  • sürüm belirterek: pnpm add express@1.0.0
  • iki sürüm aralığı belirterek: pnpm add express@2 react@">=0.1.0<0.2.0"

Çalışma alanından/Workspace'den yükleme

Paket kurulumu yaparken ve çalışma alanı içerisinde çalışırken; yüklemek istenilen paket link-workspace-packages ayarının tanımlı olması veya olmaması ve workspace: sürüm aralığı kullanılması durumuna bağlı olarak, sadece belirtilen kaynaktan yüklenir.

Yerel dosya sisteminden yükleme

Yerel dosya sisteminden yüklemenin iki yolu var:

  1. tarball dosyası kullanarak (.tar, .tar.gz veya .tgz)
  2. bir dizini kaynak olarak belirterek

Şu şekilde:

pnpm add ./package.tar.gz
pnpm add ./some-directory

Bir dizini kaynak olarak belirterek yükleme yaptığında, projenin node_modules klasörü içerisinde belirtilen dizin için sembolik bağ (symlink) oluşturulur. Bu işlem aynı zamanda pnpm link komutu ile aynı şekilde çalışır.

Tarball linki ile yükleme

Belirtilecek olan link, "http://" veya "https://" ile başlamalı ve indirmeye uygun bir URL olmalıdır.

Örnek kullanım:

pnpm add https://github.com/indexzero/forever/tarball/v0.5.6

Git deposundan yükleme

pnpm add <git remote url>

Paketi, Git komut sistemi ile Git deposunu klonlayarak yüklemesini yapar. Ayrıca, yaygın Git sağlayıcıları için özel protokol kullanarak da yükleme yapabilirsin. Örneğin pnpm add github:kullanıcı/repo

Git sağlayıcılarından şu yollar ile yükleme yapabilirsin:

  • varsayılan branch'in son commit'i: pnpm add kevva/is-positive
  • hedef commit'i belirterek: pnpm add kevva/is-positive#97edff6f525f192a3f83cea1944765f769ae2678
  • hedef branch'i belirterek: pnpm add kevva/is-positive#master
  • sürüm aralığı belirterek: pnpm add kevva/is-positive#semver:^2.0.0

You may also install just a subdirectory from a Git-hosted monorepo. For instance:

pnpm add myorg/repo#path:packages/foo

It is possible to combine multiple parameters by separating them with &. For instance, you can extend the above command by specifying which branch to fetch from:

pnpm add myorg/repo#path:packages/foo&next

Parametreler

--save-prod, -P

Belirtilen paketleri dependencies kısmına tanımlayarak yükler.

--save-dev, -D

Belirtilen paketleri devDependencies kısmına tanımlayarak yükler.

--save-optional, -O

Belirtilen paketleri optionalDependencies kısmına tanımlayarak yükler.

--save-exact, -E

Yüklenecek olan paketleri, pnpm'in varsayılan semver aralık operatörünü kullanmadan yükler. Yani, ^ karakterini, sürüm bilgisinin başına eklenmez.

--save-peer

Paket yüklerken --save-peer kullanıldığında yüklenecek olan paketler, peerDependencies kısmına eklenerek, bir dev dependencies'miş gibi yüklenir.

--ignore-workspace-root-check

Adding a new dependency to the root workspace package fails, unless the --ignore-workspace-root-check or -w flag is used.

For instance, pnpm add debug -w.

--global, -g

Paketi, global olarak yükler.

--workspace

Belirlenen paket workspace içerisinde bulunduğu takdirde, hedef projeye dependency (bağ) olarak yükler.

--filter <paket_seçici>

Buradan daha fazla bilgiye ulaşabilirsin.