Angular y NPM
Angular y NPM
-Angular, las apps de Angular y la Angular CLI dependen de paquetes npm para muchas de sus
características y funciones. Para descargar e instalar paquetes npm necesitas un npm package manager.
NPM
-La website. Para descubrir paquetes, set up perfiles, y administrar la experiencia con npm (ej. set up
organizaciones para administrar el acceso publico o privado a paquetes)
-La CLI, se ejecuta desde una terminal, sirve para interactuar con npm
-El registry. El registry público de npm es una base de datos enorme de paquetes de Javascript,
compuesto de software y metadatos. Gran parte de estos paquetes son módulos de node, o contienen
modulos de node.
Usamos NPM para adaptar paquetes de código para tus aplicaciones, descargar herramientas, ejecutar
paquetes sin descargarlos usando npx, administrar diversas versiones de código y depedencias...
¿Qué es un paquete?
Un paquete es un archivo o un directorio que está descrito por un archivo package.json. Un paquete
DEBE contener un archivo package.json para ser publicado en el registry de npm.
Osea, un programa descrito por un archivo package.json.
Los paquetes pueden almacenarse como un archivo o directorio, o como un zip, archivo comprimido de
una carpeta que contiene un programa descrito por un archivo package.json
A este paquete se puede acceder a través de una url si está publicado en un registry, un nombre@tag
que apunta a un paquete pubicado en el registry...
Tarball (tape archive) es un archivo .tar que se usa para consolidar archios y carpetas en uno, es una
extensión, un tipo de archivo, un formato que puede combinar varios archivos en uno único llamado
tarball
NPM viene preconfigurado para usar el registry público de npm, pero puedes configurarlo para usar
cualquier registry que quieras.
PRÁCTICA NPM
La CLI de npm tiene muchas versiones, hay que ver cuál se ajusta más a nuestras necesidades. Para
instalar npm, la versión estable más reciente usamos:
Para publicar e instalar paquetes en y desde un registry npm público o privado, se debe instalar Node.js y
la CLI de npm. Recomendable usar una node version manager (como nvm) para instalar Node.js y npm
Se puede añadir un archivo package.json a un paquete para facilitar la instalación y manejo del mismo,
pero para publicarlo en el registry es OBLIGATORIO que disponga de este archivo. En este archivo se
recoge: un listado de los paquetes de los que depende el proyecto (las dependencias del proyecto), la
versión del paquete que usa el proyecto usando las reglas de versionado semántico, y permite hacer tu
build reproducible y fácil de compartir
Para crear un archivo package.json, se usa el comando siguiente en el path del codigo del paquete:
npm init
Nos lanzarán una serie de preguntas para ir rellenando la info del archivo. Si queremos que se rellene
con info por defecto, genérica, usamos:
"author" , "description" info sobre el paquete, un string, README info, "scripts" Que se deseen ejecutar,
"keywords""license", "bugs", "homepage" ...
ARCHIVO NPMRC
Npm obtiene su configuración de la CLI, las variables de entorno y los archivos NPMRC. Se puede usar el
comando npm config para actualizar/editar el contenido de los archivos npmrc
Todos los archivos de configuración npm están en formato key = value. Las variables de entorno se
pueden sobreescribir usando ${NOMBRE_VARIABLE}
Cada uno de etsos archivos se carga y su configuración es resuelta siguiendo una precedencia de más
específico a menos, es decir, un setting del userconfig sobreescribirá un setting la configuración global
CACHÉ
Los archivos de caché se almacenan en ~/.npm o %AppData%/npm-cache
https://docs.npmjs.com/cli/v8/commands/npm-cache
Usamos el comando npm cache para añadir, listar o limpiar la carpeta de caché de npm.
Con add añadimos paquetes específicos al caché local.
Con clean eliminamos toda la info dentro de la carpeta de caché.
Con verify verificamos el contenido de la carpeta de caché, y la integridad de la misma.
COMANDOS
https://docs.npmjs.com/cli/v8/commands/npm-install#synopsis
npm pack
Para cualquier cosa que sea instalable (una carpeta de paquete, un tarball.. este comando lo buscará en
el caché, copiará el tarball al directorio de trabajo actual como <nombre>-<version>.tgz y escribirá el
nombre del archivo/s al stdout (salida estándar, la vía por la que el programa devuelve los datos tras
ejecutarse)
--dry-run Hace todo lo que haría el publish pero no publica el paquete, informa sobre qué habría sido
publicado.