Na documentação do Angular Component Router, deparei-me com um comando npm que nunca tinha visto antes e não entendo o que está acontecendo:
npm install @angular/router --save
Qual é o significado de @angular/router
?
A cadeia inteira é um nome de pacote? Mas não encontro esse pacote quando uso a pesquisa em npmjs.com . E também a pesquisa de linha de comando não retorna esse pacote:
npm search @angular/router
:No match found for "@angular/router"
Então, existe @angular/
algum tipo de mecanismo de prefixo em npm? E como isso funciona?
javascript
angular
npm
jbandi
fonte
fonte
npm help scope
Respostas:
Esse é um novo recurso do NPM chamado 'pacotes com escopo definido', que permite efetivamente que os pacotes do NPM sejam espaçados por nomes. Todo usuário e organização no NPM tem seu próprio escopo e são as únicas pessoas que podem adicionar pacotes a ele.
Isso é útil por vários motivos:
@angular
, você sabe que foi publicado pela equipe principal do Angular.http
já está no repositório principal, mas o Angular também pode ter@angular/http
.A razão pela qual os pacotes com escopo definido não aparecem na pesquisa pública é porque muitos deles são pacotes privados criados por organizações que usam os serviços pagos da NPM, e eles não se sentem confortáveis em abrir a pesquisa até que possam ter certeza de que não estão. tornar público qualquer coisa que não deva ser pública - de uma perspectiva legal, isso é bastante compreensível.
Para obter mais informações, consulte os documentos do NPM e os documentos angulares .
EDIT: Parece que os pacotes públicos com escopo agora aparecem corretamente na pesquisa!
fonte
Basicamente, existem dois tipos de módulos no npm, eles são -
Módulos globais - são módulos que seguem a convenção de nomenclatura que existe hoje. Você
require('foo')
e há muita alegria. Eles pertencem a uma ou mais pessoas através donpm install XYZ
comando.Módulos com escopo definido - estes são novos módulos que são "escopos" sob um nome de organização que começa com
@
o nome da organização, uma barra e, finalmente, o nome do pacote, por exemplo@someOrgScope/packagename
. Os escopos são uma maneira de agrupar pacotes relacionados e também afetam algumas coisas sobre a maneira como o npm trata o pacote.Um pacote com escopo definido é instalado referenciando-o pelo nome, precedido por um símbolo @, na instalação do npm:
Veja também
http://blog.nodejitsu.com/a-summary-of-scoped-modules-in-npm/
https://docs.npmjs.com/misc/scope
fonte