Dalam dokumentasi Angular Component Router saya hanya menemukan perintah npm yang belum pernah saya lihat sebelumnya dan saya tidak mengerti apa yang sedang terjadi:
npm install @angular/router --save
Apa artinya @angular/router
?
Apakah seluruh string nama paket? Tapi kemudian saya tidak menemukan paket itu ketika saya menggunakan pencarian di npmjs.com . Dan juga pencarian commandline tidak mengembalikan paket seperti itu:
npm search @angular/router
:No match found for "@angular/router"
Jadi, apakah @angular/
semacam mekanisme awalan di npm? Dan bagaimana cara kerjanya?
javascript
angular
npm
jbandi
sumber
sumber
npm help scope
Jawaban:
Ini adalah fitur baru dari NPM yang disebut 'paket scoped', yang secara efektif memungkinkan paket NPM untuk di-namespace. Setiap pengguna dan organisasi di NPM memiliki cakupannya sendiri, dan mereka adalah satu-satunya orang yang dapat menambahkan paket ke dalamnya.
Ini berguna karena beberapa alasan:
@angular
, Anda tahu itu diterbitkan oleh tim inti Angular.http
sudah diambil di repositori utama, tetapi Angular juga bisa memilikinya@angular/http
.Alasan mengapa paket scoped tidak muncul dalam pencarian publik adalah karena banyak dari mereka adalah paket pribadi yang dibuat oleh organisasi yang menggunakan layanan berbayar NPM, dan mereka tidak nyaman membuka pencarian sampai mereka benar-benar yakin mereka tidak akan membuat publik apa pun yang tidak boleh publik - dari perspektif hukum, ini cukup dimengerti.
Untuk informasi lebih lanjut, lihat NPM docs dan Angular docs .
EDIT: Tampaknya paket lingkup publik sekarang muncul dengan benar dalam pencarian!
sumber
Pada dasarnya ada dua jenis modul pada npm, yaitu -
Modul global - ini adalah modul yang mengikuti konvensi penamaan yang ada saat ini. Anda
require('foo')
dan ada banyak yang bersukacita. Mereka dimiliki oleh satu atau lebih orang melaluinpm install XYZ
perintah.Modul tercakup - ini adalah modul baru yang "dicakup" di bawah nama organisasi yang dimulai dengan
@
nama organisasi, garis miring dan akhirnya nama paket, mis@someOrgScope/packagename
. Lingkup adalah cara pengelompokan paket terkait, dan juga memengaruhi beberapa hal tentang cara npm memperlakukan paket.Paket scoped diinstal dengan merujuknya dengan nama, didahului dengan simbol @, di npm install:
Lihat juga
http://blog.nodejitsu.com/a-summary-of-scoped-modules-in-npm/
https://docs.npmjs.com/misc/scope
sumber