Gestor de procesos para producción con balanceador de carga. Wrappers para depuración y ganchos de Git, protección de aplicaciones express con encabezados HTTP, una utilidad con más de 180 funciones para trabajar con fechas y otras herramientas que le permitirán ahorrar tiempo. Esta colección es especialmente útil para los desarrolladores novatos de NodeJS, pero puede complacer a los escépticos experimentados.
Siempre que necesite solucionar un problema con su código, es probable que ya exista un paquete para solucionar su problema. Aquí hay una lista de paquetes que creo que todo desarrollador debería conocer. Considere estos paquetes npm como un ahorro de tiempo.
1. Husky
Husky facilita la implementación de ganchos en Git. Le permite exigir a todos que realicen automáticamente la prueba de su código antes de enviarlo o enviarlo al repositorio.
Fuentes husky
Instalación
yarn add husky
Solicitud
Ejemplo de ganchos con
husky
:
// package.json
{
"husky": {
"hooks": {
"pre-commit": "npm lint",
"pre-push": "npm test"
}
}
}
pre-commit
se ejecuta antes de la confirmación.
pre-push
antes de enviarlo al repositorio.
2. Dotenv
Dotenv es un módulo sin dependencias. Carga variables de entorno desde el archivo
.env
a process.env . Mantener la configuración en un entorno separado del código se basa en la metodología de aplicación de doce factores . Fuentes dotenv .
Instalación
yarn add dotenv
Solicitud
Escriba
require
y establezca los valores lo antes posible en su aplicación dotenv
:
require('dotenv').config()
Cree un
.env
archivo en el directorio raíz de su proyecto. Agregue variables de entorno en nuevas líneas como NAME=VALUE
. Por ejemplo:
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
Ahora
process.env
contiene las claves y valores del archivo .env
:
const db = require('db')
db.connect({ host: process.env.DB_HOST, username: process.env.DB_USER, password: process.env.DB_PASS})
3.fecha-fns
Date-fns es similar a lodash, pero está diseñado para trabajar con fechas. Proporciona un conjunto completo pero simple y consistente de herramientas de manipulación de fechas de JavaScript en el navegador y Node.JS.
Fuentes date-fns
Instalación
yarn add date-fns
Solicitud
Ejemplo con date-fns:
import { compareAsc, format } from 'date-fns'
format(new Date(2014, 1, 11), 'yyyy-MM-dd')
//=> '2014-02-11'
const dates = [
new Date(1995, 6, 2),
new Date(1987, 1, 11),
new Date(1989, 6, 10),
]
dates.sort(compareAsc)
//=> [
// Wed Feb 11 1987 00:00:00,
// Mon Jul 10 1989 00:00:00,
// Sun Jul 02 1995 00:00:00
// ]
Documentación con ejemplos y casos de uso.
4. Bunyan
Bunyan es una biblioteca de registro JSON potente y fácil de usar para Node.
Fuentes bunyan
Instalación
yarn add bunyan
Tenga en cuenta: la CLI está
bunyan
escrita para ser compatible (dentro de lo razonable) con todas las versiones de los registros de Bunyan. Por lo tanto, puede instalarlo globalmente: yarn add global bunyan
para obtener esta herramienta PATH
y luego usar las instalaciones locales de Bunyan para las aplicaciones.
Solicitud
Bunyan es una biblioteca de registro JSON simple y rápida para los servicios de Node.js.
// hi.jsconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});
log.info("hi");
Esto es lo que se devuelve a la consola si ejecuta
node hi.js
.
5. Ramda
Ramda es una biblioteca de estilo funcional práctica y útil. Destaca el estilo puro y funcional. La inmutabilidad y la funcionalidad sin efectos secundarios están en el corazón de la filosofía de diseño de Ramda. Este enfoque puede ayudarlo a escribir código simple y elegante.
Fuentes ramda
Instalación
yarn add ramda
Solicitud
import * as R from 'ramda'
const greet = R.replace('{name}', R.__, 'Hello, {name}!');
greet('Alice'); //=> 'Hello, Alice!'
Ejemplos de código
6. Depurar
Debug es una pequeña utilidad de depuración de JavaScript modelada a partir de la técnica de depuración de Node.JS.
Fuentes de depuración
Instalación
yarn add debug
Solicitud
Debug proporciona una función. Simplemente pase el nombre de su módulo a esta función y devolverá una versión decorada
console.error
para pasar declaraciones de depuración.
const debug = require('debug');
const log = debug('http:server');
const http = require('http');
const name = 'My App name';
log('booting %o', name);
http.createServer((req, res) => {
log(req.method + ' ' + req.url);
res.end('debug examplen');
}).listen(3200, () => {
log('listening');
});
//
// DEBUG=http:server node app.js
Muestra y oculta la salida de depuración de un módulo como un todo o partes de él.
7. Plano
Flat toma un objeto y lo aplana. También puede contraer un objeto separado por claves. [Nota. transl. - no solo un punto puede ser un separador].
Fuentes planas
Instalación
yarn add flat
Solicitud
const flatten = require('flat')
flatten({
key1: {
keyA: 'valueI'
},
key2: {
keyB: 'valueII'
},
key3: { a: { b: { c: 2 } } }
})
// {
// 'key1.keyA': 'valueI',
// 'key2.keyB': 'valueII',
// 'key3.a.b.c': 2
// }
8. JSON5
El formato de intercambio de datos JSON5 es un superconjunto de JSON que tiene como objetivo aliviar algunas de las limitaciones de JSON ampliando su sintaxis para incluir algunas de las características de ECMAScript 5.1 .
Fuentes JSON5
Instalación
yarn add json5
const JSON5 = require('json5')
Solicitud
Preste atención a la extensión del archivo. JSON5 es un superconjunto, una extensión de JSON.
{
//
unquoted: 'and you can quote me on that',
singleQuotes: 'I can use "double quotes" here',
lineBreaks: "Look, Mom! \
No \\n's!",
hexadecimal: 0xdecaf,
leadingDecimalPoint: .8675309, andTrailing: 8675309.,
positiveSign: +1,
trailingComma: 'in objects', andIn: ['arrays',],
"backwardsCompatible": "with JSON",
}
9. ESLint
ESLint es una gran herramienta para evitar errores y establecer estándares de codificación para los equipos de desarrollo. ESLint es una herramienta para identificar y representar patrones que se encuentran en el código ECMAScript / JavaScript.
Fuentes de ESLint
Instalación y aplicación
yarn add eslint
Luego configure el archivo de configuración:
./node_modules/.bin/eslint --init
Después de eso, puede ejecutar ESLint en cualquier archivo o directorio, por ejemplo:
./node_modules/.bin/eslint yourfile.js
Documentación con muchos ejemplos de puesta en marcha y configuración.
10. PM2
PM2 es un administrador de procesos de producción con equilibrador de carga integrado. Le permite mantener las aplicaciones ejecutándose en todo momento, recargarlas sin tiempo de inactividad y facilitar las tareas comunes de administración del sistema.
Fuentes pm2
Instalación
yarn add global pm2
Lanzamiento de la aplicación
Puede ejecutar cualquier aplicación (Node.js, Python, Ruby, binarios,
$PATH
etc.) de esta manera:
pm2 start app.js
Su aplicación ahora se ejecuta bajo el control de un demonio y se supervisa y mantiene continuamente. Obtenga más información sobre la gestión de procesos, inicio rápido .
Y así es como puede enumerar todas las aplicaciones en ejecución:
pm2 ls
Consulte la documentación oficial para obtener una lista completa de características y capacidades.
11. Casco
Helmet ayuda a proteger las aplicaciones express a través de encabezados HTTP. No es una solución milagrosa, pero puede ayudar.
Fuentes de cascos
Instalación
yarn add helmet
Solicitud
Helmet
está escrito en estilo Connect y es compatible con marcos como Express . Si necesita el apoyo de Koa, consulte koa-helmet
.)
const express = require("express");
const helmet = require("helmet");
const app = express();
app.use(helmet());
La función del casco es una envoltura de 11 middleware más pequeños. En otras palabras, equivalente a
// ...
app.use(helmet());
// ... :
app.use(helmet.contentSecurityPolicy());
app.use(helmet.dnsPrefetchControl());
app.use(helmet.expectCt());
app.use(helmet.frameguard());
app.use(helmet.hidePoweredBy());
app.use(helmet.hsts());
app.use(helmet.ieNoOpen());
app.use(helmet.noSniff());
app.use(helmet.permittedCrossDomainPolicies());
app.use(helmet.referrerPolicy());
app.use(helmet.xssFilter());
12. Compresión
La compresión es una herramienta de compresión de datos.
Fuentes de compresión
Instalación
yarn add compression
Solicitud
Cuando use este módulo junto con express, o
connect
simplemente llame compression()
al middleware. Las solicitudes que pasan por el middleware se comprimirán.
const compression = require('compression')
const express = require('express')
const app = express()
//
app.use(compression())// ...
¿Qué herramientas usas para trabajar con NodeJS?
Descubra los detalles de cómo obtener una profesión de alto perfil desde cero o subir de nivel en habilidades y salario tomando cursos en línea de SkillFactory:
- Curso de JavaScript (12 meses)
- - (8 )
- Java- (18 )
E