Generalidades
Lo siguiente describe cómo instalar Node.js y paquetes locales relacionados en servidores de DreamHost.
Instalar Node.js y npm
Node.js no está instalado de manera predeterminada en los servidores DreamHost más nuevos. Debes instalar manualmente una versión personalizada con el nombre de usuario de tu servidor. Consulta el siguiente artículo para obtener instrucciones sobre cómo instalar una versión personalizada de Node.js.
Una vez instalado, npm también está instalado y podrá ejecutar los comandos a continuación.
Instalación local de paquetes
Solo se recomienda instalar paquetes localmente para cada proyecto individual.
Para instalar un paquete localmente, navega hasta el directorio de la aplicación de tu sitio (no el directorio /public). El comando para instalar un paquete es:
[server]$ npm install <package_name>
Por ejemplo, esto instala un paquete llamado 'lodash'.:
[server]$ npm install lodash /home/username/example.com └── lodash@4.17.4 npm WARN enoent ENOENT: no such file or directory, open '/home/username/example.com/package.json' npm WARN example.com No description npm WARN example.com No repository field. npm WARN example.com No README data npm WARN example.com No license field.
Esto crea un directorio en el directorio de aplicaciones de tu sitio llamado /node_modules.
Luego debes verificar para confirmar que se instaló correctamente. Debes estar en el directorio de aplicaciones de tu sitio donde reside el directorio local /node_modules:
[server]$ ls node_modules lodash
Probar tu paquete instalado localmente
Este ejemplo está tomado de docs.npmjs.com.
Crea un archivo llamado index.js, con el siguiente código:
// index.js
var lodash = require('lodash');
var output = lodash.without([1, 2, 3], 1);
console.log(output);
Ejecuta el archivo usando node index.js. Debería mostrar la siguiente salida [2, 3].
[server]$ node index.js [ 2, 3 ]
Si el módulo no se instaló correctamente, se generará un error.
Crear un archivo packages.json para paquetes instalados localmente
Es una buena idea crear un archivo packages.json local en el directorio de aplicaciones de tu sitio donde reside el directorio /node_modules. Este archivo package.json ayuda a administrar tus paquetes instalados localmente.
Para ser claros, este archivo package.json es diferente del archivo package.json dentro de cualquier paquete instalado localmente. Por ejemplo:
- Ubicación del archivo local package.json del sitio: /example.com/package.json
- Archivo package.json de paquete instalado localmente: /example.com/node_modules/<module_name>/package.json
Instalación global de paquetes
Si tu proyecto depende de un paquete específico, siempre debe instalarse localmente como se muestra arriba. Las instalaciones globales deben reservarse para paquetes de los que tus proyectos no dependen, como las utilidades CLI.
Usa el indicador -g para instalar un paquete globalmente:
[server]$ npm install -g <package_name>
Puedes confirmar qué paquetes están instalados globalmente corriendo lo siguiente:
[server]$ npm list -g --depth=0 /home/username/.nvm/versions/node/v12.14.0/lib └── npm@6.13.4
Actualizar paquetes
Actualizar paquetes locales
Navega al directorio de aplicaciones de tu sitio donde reside la carpeta local /node_modules.
Primero, verifica qué paquetes deben actualizarse:
[server]$ npm outdated
Puedes actualizar un solo paquete con:
[server]$ npm update -S <package_name>
Puedes actualizar todos los paquetes locales con:
[server]$ npm update -S
Es una buena idea usar la banderilla -S. Esto guarda la nueva versión como la dependencia mínima requerida en el archivo package.json de tu sitio. Si no utilizas el indicador -S, el paquete se actualizará, pero el archivo package.json para tu sitio no se actualizará.
Actualizar paquetes globales
Primero, verifica qué paquetes deben actualizarse:
[server]$ npm outdated -g --depth=0
Puedes actualizar un solo paquete con:
[server]$ npm outdated -g <package_name>
Puedes actualizar todos los paquetes globales con:
[server]$ npm update -g
Usar un paquete para actualizar paquetes
Hay varios paquetes que pueden ayudar a actualizar los paquetes de tu sitio. Por ejemplo: