Pasar al contenido principal
Descuento de lanzamiento Angular desde Cero y CSS Avanzado - Animaciones El descuento termina en

Introducción a NPM

Introducción a NPM

NPM

Hola gente de EDteam...

...soy su amigo y docente digital Jonathan MirCha, y en esta ocasión quiero darles una pequeña introducción a NPM, a su archivo de configuración y a los tipos de instalaciones de sus paquetes.

Node Package Manager.

npmjs.com es el gestor de paquetes de Node.js... y de todo JavaScript.

Iniciar un proyecto npm.

$ > npm init //Con asistente
$ > npm init -y //Sin asistente

package.json:

{
	"name": "module-name",
	"version": "10.3.1",
	"description": "An example module to illustrate the usage of a package.json",
	"author": "Your Name <[email protected]>",
	"contributors": [{
		"name": "Foo Bar",
		"email": "[email protected]"
	}],
	"bin": {
		"module-name": "./bin/module-name"
	},
	"scripts": {
		"test": "vows --spec --isolate",
		"start": "node index.js",
		"predeploy": "echo im about to deploy",
		"postdeploy": "echo ive deployed",
		"prepublish": "coffee --bare --compile --output lib/foo src/foo/*.coffee"
	},
	"main": "lib/foo.js",
	"repository": {
		"type": "git",
		"url": "https://github.com/nodejitsu/browsenpm.org"
	},
	"bugs": {
		"url": "https://github.com/nodejitsu/browsenpm.org/issues"
	},
	"keywords": [
		"nodejitsu",
		"example",
		"browsenpm"
	],
	"dependencies": {
		"primus": "*",
		"async": "~0.8.0",
		"express": "4.2.x",
		"winston": "git://github.com/flatiron/winston#master",
		"bigpipe": "bigpipe/pagelet",
		"plates": "https://github.com/flatiron/plates/tarball/master"
	},
	"devDependencies": {
		"vows": "^0.7.0",
		"assume": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0",
		"pre-commit": "*"
	},
	"preferGlobal": true,
	"private": true,
	"publishConfig": {
		"registry": "https://your-private-hosted-npm.registry.nodejitsu.com"
	},
	"subdomain": "foobar",
	"analyze": true,
	"license": "MIT"
}

Paquetes NPM.

Instalación Única:

Se instalan en la carpeta donde se encuentre la terminal de comandos, NO se registran en el archivo package.json.

$ > npm install [nombre del package]
$ > npm install [nombre del package]@3.4.12 // Versión específica
$ > npm i [nombre del package] //shortcut

Instalación como Dependencia del proyecto:

Se instalan en la carpeta donde se encuentre la terminal de comandos, SI se registran en el archivo package.json como dependencias del proyecto, esto significa que el proyecto requiere de éstos paquetes para funcionar.

$ > npm install [nombre del package] --save
$ > npm install [nombre del package] -S //shortcut

Instalación como Dependencia de Desarrollo del proyecto:

Se instalan en la carpeta donde se encuentre la terminal de comandos, SI se registran en el archivo package.json como dependencias de desarrollo del proyecto, esto significa que facilitan y optimizan las tareas comunes de desarrollo y publicación del proyecto.

$ > npm install [nombre del package] --save-dev
$ > npm install [nombre del package] -D //shortcut

Instalación Global:

Se instalan localmente en el ordenador independientemente de donde se encuentre la terminal de comandos, esto significa que estarán disponibles en todas las carpetas del ordenador, NO se registran en el archivo package.json.

$ > npm install [nombre del package] --global
$ > npm install [nombre del package] -g //shortcut

Instalación Múltiple de paquetes:

Se pueden instalar múltiples paquetes, separando sus nombres con un espacio en blanco y al final especificar el flag del tipo de instalación.

$ > npm install [package1] [package2] [package3] --flag

Instalación de proyecto con package.json:

Cuando un proyecto tiene el archivo package.json se pueden instalar todas las dependencias de proyecto y desarrollo que tenga registradas en el mismo.

$ > npm install

Desinstalación de paquetes.

Si se utiliza el flag --save o --save-dev se elimina el registro del archivo package.json, si se usa --global se elimina del ordenador

$ > npm uninstall [package] //se borra de la carpeta node_modules
$ > npm uninstall [package] --save
$ > npm uninstall [package] --save-dev
$ > npm uninstall [package] --global
$ > npm un [package] //shortcut

Publicación de paquetes.

Un paquete no puede volver a re-publicarse con la misma versión. Si despublicas un paquete puedes romper Internet 😬

$ > npm publish

Mostrar información de paquetes.

Lee metadatos del archivo package.json del paquete en su repositorio oficial

$ > npm view [package]
$ > npm view [package] versions

Documentación de NPM.

Recuerda que en EDteam, tenemos un Curso de Node.js donde te enseñamos a profundidad a utilizar NPM.

Se despide su amigo y docente digital Jonathan MirCha, sean felices, hasta siempre, nos leemos la próxima semana... 

...bye ;)