Introducción práctica a
para
Día 4: npm
Vuestro anfitrión
Alex Fernández
Ingeniero senior en LogTrust
Co-organizador de Node.js Madrid
Índice día 4
- npm
- Sesión práctica 1: Instalación
- Anatomía de un paquete de Node.js.
- Sesión práctica 2: Tu primer módulo
NPM
El gestor de paquetes de Node.js (entre otros)
Comandos NPM
-
npm install
: instala un paquete (o varios)
-
npm install -g
: instalación global -
npm update
: actualiza un paquete (o varios)
-
npm remove
: elimina un paquete
-
npm test
: corre los tests del paquete
Fuente:
npm Dcoumentation
Resolución de Directorios
Local:
node_modules
../node_modules
../../node_modules
...
$HOME/node_modules
./node_modules
Global:
{prefix}/lib/node_modules
donde {prefix} normalmente es /usr/local
Fuente:
npm-folders
Sesión Práctica 1: instalación
Queremos usar el paquete simplecached
Instalación:
npm install simplecached
Importación con require:
var simplecached = require('simplecached');
Fuente:
simplecached
Usa los paquetes importados
Importación con require:
var simplecached = require('simplecached');
var server = new simplecached.Server(port); var client = new simplecached.Client(port); client.set(key, value, function(error) {}); client.get(key, function(error, value) {});
¿Falla? ¡Es una condición de carrera!
Resuélvela
Usa npm
npm install
sin parámetros
Corre
npm list
para ver lo que tienes instalado
Corre
npm update
sin parámetros
Corre
npm remove simplecached
y luego
npm list
Good job!
Anatomía de un módulo
Fichero léeme: README.md
Definición: package.json
Punto de entrada: index.js
Código: lib/
Documentación: doc/
Binarios: bin/
aNATOMía de un package.json
{ "name": "simplecached", "version": "0.0.1", "description": "Simplified memcached server.", "contributors": ["Alex Fernández"], "license": "MIT", "repository": { "type": "git", "url": "https://github.com/alexfernandez/simplecached" }, "dependencies": { "testing": "0.1.x" }, "keywords" : ["simplecached", "didactic", "memcached", "caching"], "bin": { "simplecached": "bin/server.js" }, "scripts": { "test": "node test.js" }, }
Fuente:
package.json
Especificación de versiones
- "1.2.3": versión específica
- ">=1.2.3": mayor que la dada
- "~1.2.3" (churro): fija la versión menor (1.2.x) y más
- "^1.2.3" (caret): fija la versión mayor (2.x.x) y más
- "*" (asterisco): cualquier versión
- URL: "http://asdf.com/asdf.tar.gz"
- Git: "git+ssh://user@hostname:project.git#commit"
Fuente:
package.json dependencies,
semver
Sesión Práctica 4: Tu Primer Módulo
Mueve todo a su sitio:
- Código a lib
- Documentación a doc
Crea index.js que requiere el resto
Crea un package.json
npm init
Nombre y descripción
Autor(es)
Depende de simplecached
Usa npm
npm install
sin parámetros
Corre
npm install simplecached
Revisa el
package.json
Corre
npm list
para ver lo que tienes instalado
Publica con
npm publish
¡Y ahora bórralo! con
npm unpublish --force
¡Tachán!
Bonus track: binarios
Crea un script en bin/test.js
Corre las pruebas en el script
Añade el script al package.json
Corre el script con npm test
Bonus Track
Crear un binario en
bin/
Instalar globalmente con npm install -g
Usar binario
Fin del día 4
Introducción práctica a Node.js, día 4
By Alex Fernández
Introducción práctica a Node.js, día 4
Curso de Nodejs para Kairós día 4: npm. 2018-04-06.
- 2,279