Npm paketlerindeki “at” (@) önekinin anlamı nedir?


295

In Açısal Bileşen Yönlendirici belgeler sadece daha önce hiç görmediğiniz ve ben neler olduğunu anlamıyorum bir npm komutasını tökezledi:

npm install @angular/router --save

Anlamı nedir @angular/router?

Tüm dize bir paket adı mıdır? Ama npmjs.com'da aramayı kullandığımda bu paketi bulamıyorum . Ayrıca, komut satırı araması böyle bir paket döndürmez:

npm search @angular/router
:No match found for "@angular/router"

Yani @angular/npm'de bir tür önek mekanizması var mı? Ve nasıl çalışır?


7
npm help scope
sondaki eğik çizgi

3
@trailingslash Harika bir cevap! (bir yorum olmamalıdır.)
Sınırlı Kefaret

Yanıtlar:


325

Bu, NPM paketlerinin isimlendirilmesine etkili bir şekilde izin veren 'Kapsamlı paketler' adı verilen yeni bir NPM özelliğidir. NPM'deki her kullanıcı ve kuruluşun kendi kapsamı vardır ve bunlara paket ekleyebilen tek kişi onlardır.

Bu birkaç nedenden dolayı yararlıdır:

  • Kuruluşların hangi paketlerin 'resmi' hangilerinin olmadığını açıklamasını sağlar.
    • Örneğin, bir paketin kapsamı varsa, paketin @angularAçısal çekirdek ekibi tarafından yayınlandığını bilirsiniz.
  • Paket adı, yalnızca kayıt defterinin kapsamına özgü olmalı, tüm kayıt defterine değil.
    • Örneğin, paket adı httpana depoda zaten alınmış, ancak Angular da sahip olabilir @angular/http.

Sebebi kapsamına sahip paketler genel aramada da görünmüyor birçoğu UÖM'nin ücretli hizmetleri kullanan kuruluşlar tarafından oluşturulan özel paketler, çünkü, ve onlar rahat açılış değiliz onlar değiliz tamamen emin olabiliriz kadar arama kamuya açık olmaması gereken herkesi kamuya açık hale getirecek - yasal açıdan bakıldığında bu oldukça anlaşılabilir.

Daha fazla bilgi için bkz. NPM belgeleri ve Açısal belgeler .

DÜZENLEME: Görünen o ki genel kapsamdaki paketler artık aramada düzgün bir şekilde görünüyor!


68

Temelde npm'de iki tip modül vardır, bunlar -

  • Global modüller - bunlar, bugün var olan adlandırma kuralına uyan modüllerdir. Sen require('foo')ve çok seviniyoruz. npm install XYZKomuta yoluyla bir veya daha fazla kişiye aittirler .

  • Kapsamlı modüller - bunlar @, kuruluşun adı, eğik çizgi ve son olarak paket adıyla başlayan bir kuruluş adı altında "kapsamlandırılan" yeni modüllerdir @someOrgScope/packagename. Kapsamlar, ilgili paketleri birlikte gruplamanın bir yoludur ve ayrıca npm'nin paketi işleme şekliyle ilgili birkaç şeyi etkiler.

Kapsamlı bir paket, npm kurulumunda adından önce @ işareti sembolüyle başvurularak yüklenir:

npm install @myorg/mypackage

Ayrıca bakınız

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.