En el documentación de Angular Component Router, me topé con un comando npm que nunca había visto antes y no entiendo lo que está sucediendo:
npm install @angular/router --save
¿Cuál es el significado de @angular/router
?
¿Es toda la cadena un nombre de paquete? Pero luego no encuentro ese paquete cuando uso la búsqueda en npmjs.com . Y también la búsqueda de línea de comandos no devuelve dicho paquete:
npm search @angular/router
:No match found for "@angular/router"
Entonces, ¿hay @angular/
algún tipo de mecanismo de prefijo en npm? Y, ¿cómo funciona?
javascript
angular
npm
jbandi
fuente
fuente
npm help scope
Respuestas:
Esta es una nueva característica de NPM llamada 'paquetes con ámbito', que efectivamente permite que los paquetes NPM tengan espacios de nombres. Cada usuario y organización en NPM tiene su propio alcance, y son las únicas personas que pueden agregarle paquetes.
Esto es útil por varias razones:
@angular
, usted sabe que fue publicado por el equipo central de Angular.http
ya está en el repositorio principal, pero Angular también puede tenerlo@angular/http
.La razón por la que los paquetes de ámbito no aparecen en la búsqueda pública es porque muchos de ellos son paquetes privados creados por organizaciones que utilizan los servicios pagos de NPM, y no se sienten cómodos abriendo la búsqueda hasta que puedan estar totalmente seguros de que no hará público todo lo que no debería ser público: desde una perspectiva legal, esto es bastante comprensible.
Para obtener más información, consulte los documentos de NPM y los documentos angulares. .
EDITAR: ¡Parece que los paquetes de ámbito público ahora se muestran correctamente en la búsqueda!
fuente
Básicamente, hay dos tipos de módulos en npm, que son:
Módulos globales: son módulos que siguen la convención de nomenclatura que existe hoy en día. Tú
require('foo')
y hay mucho regocijo. Son propiedad de una o más personas a través delnpm install XYZ
comando.Módulos con ámbito: estos son módulos nuevos que están "con ámbito" bajo el nombre de una organización que comienza con
@
el nombre de la organización, una barra diagonal y finalmente el nombre del paquete, por ejemplo@someOrgScope/packagename
. Los ámbitos son una forma de agrupar paquetes relacionados, y también afectan algunas cosas sobre la forma en que npm trata el paquete.Un paquete con ámbito se instala haciendo referencia a él por nombre, precedido por un símbolo @, en npm install:
ver también
http://blog.nodejitsu.com/a-summary-of-scoped-modules-in-npm/
https://docs.npmjs.com/misc/scope
fuente