¿Qué es el archivo package.json?
Nuestro proyecto echa mano de un archivo donde se definen las dependencias y alguna información adicional, vamos a crear este archivo utilizando el wizard.
-
Vamos a crear nuestro package.json.
$ npm init
-
Como name: (nombre) del paquete tenemos que utilizar algo que sea url-friendly (url amigable), vamos a ingresar mi-app.
Por default, se generará la primer versión de nuestra app, que en este caso sera la 1.0.0.
-
Como description: (descripción) vamos a escribir Primera aplicación utilizando npm.
-
Como entry point: (punto de entrada) vamos a especificar el archivo que sirve como punto de entrada a la aplicación, en nuestro caso app.js.
-
Continua con los valores por default, hasta que salga del wizard y regrese el cursor de la linea de comandos.
Se generará un archivo llamado package.json que contiene toda la información que acabas de definir, este archivo también se puede crear manualmente.
{ "name": "mi-app", "version": "1.0.0", "description": "Mi primera app en nodejs", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }
¿Cómo instalar de jQuery paquete como dependencia?
-
Vamos a instalar el paquete moment como una dependencia de nuestra aplicación.
$ npm install moment --save
Cuando se instala un paquete….
- Se crea un nuevo folder llamado node_modules que contiene los paquetes y sus dependencias.
- Se actualiza el archivo package.json con la dependencia correspondiente.
{ // .... "dependencies": { "moment": "^2.14.1" } }
Aquí podemos ver que dentro de dependencies existe el paquete
moment
.- El caractér ^ quiere decir que se actualice automáticamente todo lo que sea minor o patch, es decir cualquier versión después del primer punto.
- Si reemplazamos este por el caractér ~ únicamente los patches (parches) serán actualizados.
Estos dos, son las dos configuraciones recomendables para las dependencias.
-
Vamos a borrar el directorio node_modules.
-
Y nuevamente ejecutamos desde la línea de comandos…
$ npm install
Esto creará nuevamente el directorio node_modules con los paquetes requeridos y sus dependencias. Por lo anterior, en un repositorio git el código de los paquetes no suele formar parte del contenido del repositorio, solo el archivo package.json.
-
Ahora podemos echar mano del módulo para hacer manejo de fechas en español de una forma mas sencilla.
// app.js var moment = require("moment"); moment.locale("es"); moment.weekdays(true).forEach(function (dia) { console.log(dia); });
-
Si ejecutamos nuestra app.
$ node app.js
Obtendremos…
lunes martes miércoles jueves viernes sábado domingo