In der Angular Component Router-Dokumentation bin ich gerade auf einen npm-Befehl gestoßen, den ich noch nie gesehen habe, und ich verstehe nicht, was los ist:
npm install @angular/router --save
Was bedeutet das @angular/router
?
Ist die gesamte Zeichenfolge ein Paketname? Aber dann finde ich dieses Paket nicht, wenn ich die Suche auf npmjs.com verwende . Und auch die Befehlszeilensuche gibt kein solches Paket zurück:
npm search @angular/router
:No match found for "@angular/router"
Ist das also @angular/
eine Art Präfixmechanismus in npm? Und wie funktioniert es?
javascript
angular
npm
jbandi
quelle
quelle
npm help scope
Antworten:
Dies ist eine neue Funktion von NPM, die als "Gültigkeitsbereichspakete" bezeichnet wird und die effektive Zuordnung von NPM-Paketen ermöglicht. Jeder Benutzer und jede Organisation auf NPM hat ihren eigenen Bereich und sie sind die einzigen Personen, die Pakete hinzufügen können.
Dies ist aus mehreren Gründen nützlich:
@angular
, wissen Sie, dass es vom Angular-Kernteam veröffentlicht wurde.http
bereits im Haupt-Repository enthalten, Angular kann dies jedoch@angular/http
auch.Der Grund dafür, dass Pakete mit Gültigkeitsbereich nicht in der öffentlichen Suche angezeigt werden, liegt darin, dass viele von ihnen private Pakete sind, die von Organisationen erstellt wurden, die die kostenpflichtigen Dienste von NPM nutzen, und dass sie die Suche erst dann öffnen können, wenn sie absolut sicher sind, dass dies nicht der Fall ist alles öffentlich zu machen, was nicht öffentlich sein sollte - aus rechtlicher Sicht ist dies ziemlich verständlich.
Weitere Informationen finden Sie in den NPM-Dokumenten und den Angular-Dokumenten .
BEARBEITEN: Es scheint, dass Pakete mit öffentlichem Gültigkeitsbereich jetzt ordnungsgemäß bei der Suche angezeigt werden!
quelle
Grundsätzlich gibt es bei npm zwei Arten von Modulen:
Globale Module - Dies sind Module, die der heute geltenden Namenskonvention folgen. Sie
require('foo')
und es gibt viel Freude. Sie gehören einer oder mehreren Personen über dasnpm install XYZ
Kommando.Bereichsmodule - Dies sind neue Module, die unter einem Organisationsnamen "Gültigkeitsbereich" haben, der mit
@
dem Namen der Organisation, einem Schrägstrich und schließlich dem Paketnamen beginnt , z@someOrgScope/packagename
. Bereiche sind eine Möglichkeit, verwandte Pakete zu gruppieren, und wirken sich auch auf einige Dinge aus, wie npm das Paket behandelt.Ein Paket mit Gültigkeitsbereich wird installiert, indem in der npm-Installation auf den Namen verwiesen wird, dem ein @ -Symbol vorangestellt ist:
siehe auch
http://blog.nodejitsu.com/a-summary-of-scoped-modules-in-npm/
https://docs.npmjs.com/misc/scope
quelle