
Gerente de processos de produção com balanceador de carga. Wrappers para depuração e ganchos Git, protegendo aplicativos expressos com cabeçalhos HTTP, um utilitário com mais de 180 funções para trabalhar com datas e outras ferramentas que economizarão seu tempo. Esta coleção é especialmente útil para desenvolvedores NodeJS novatos, mas pode agradar os céticos experientes.
Sempre que você precisar consertar um problema com seu código, é provável que já exista um pacote para resolver seu problema. Aqui está uma lista de pacotes que acho que todo desenvolvedor deve conhecer. Considere esses pacotes npm como uma economia de tempo.
1. Husky
O Husky facilita a implementação de ganchos no Git. Ele permite que você exija que todos executem lint e testem seu código automaticamente antes de enviar ou enviar para o repositório.

Fontes roucas
Instalação
yarn add husky
Inscrição
Exemplo de ganchos com
husky
:
// package.json
{
"husky": {
"hooks": {
"pre-commit": "npm lint",
"pre-push": "npm test"
}
}
}
pre-commit
é executado antes do commit.
pre-push
antes de enviar para o repositório.
2. Dotenv
Dotenv é um módulo sem dependências. Ele carrega as variáveis de ambiente do arquivo
.env
em process.env . Manter a configuração em um ambiente separado do código é baseado na metodologia de aplicação de doze fatores . Fontes dotenv .
Instalação
yarn add dotenv
Inscrição
O mais cedo possível em seu aplicativo, escreva
require
e defina os valores dotenv
:
require('dotenv').config()
Crie um
.env
arquivo no diretório raiz do seu projeto. Adicione variáveis de ambiente em novas linhas como NAME=VALUE
. Por exemplo:
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
Agora
process.env
contém as chaves e valores do arquivo .env
:
const db = require('db')
db.connect({ host: process.env.DB_HOST, username: process.env.DB_USER, password: process.env.DB_PASS})
3.date-fns
Date-fns é semelhante a lodash, mas projetado para trabalhar com datas. Fornece um conjunto completo, mas simples e consistente de ferramentas de manipulação de data JavaScript no navegador e Node.JS.

Fontes date-fns
Instalação
yarn add date-fns
Inscrição
Exemplo com 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
// ]
Documentação com exemplos e casos de uso.
4. Bunyan
Bunyan é uma biblioteca de registro JSON poderosa e fácil de usar para Node.

Fontes Bunyan
Instalação
yarn add bunyan
Observação: a CLI foi
bunyan
escrita para ser compatível (dentro do razoável) com todas as versões dos logs do Bunyan. Portanto, você pode instalá-lo globalmente: yarn add global bunyan
para obter essa ferramenta PATH
e, em seguida, usar as instalações Bunyan locais para os aplicativos.
Inscrição
Bunyan é uma biblioteca de registro JSON simples e rápida para serviços Node.js.
// hi.jsconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});
log.info("hi");
Aqui está o que retorna ao console se você executar
node hi.js
.

5. Ramda
Ramda é uma biblioteca de estilo funcional prática e útil. Ele enfatiza o estilo funcional puro. A imutabilidade e a funcionalidade sem efeitos colaterais estão no cerne da filosofia de design da Ramda. Essa abordagem pode ajudá-lo a escrever um código simples e elegante.

Fontes ramda
Instalação
yarn add ramda
Inscrição
import * as R from 'ramda'
const greet = R.replace('{name}', R.__, 'Hello, {name}!');
greet('Alice'); //=> 'Hello, Alice!'
Exemplos de código
6. Depurar
Debug é um pequeno utilitário de depuração de JavaScript modelado após a técnica de depuração Node.JS

Fontes de depuração
Instalação
yarn add debug
Inscrição
Debug fornece uma função. Simplesmente passe o nome do seu módulo para esta função, e ela retornará uma versão decorada
console.error
para passar instruções de depuração.
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
Mostra e oculta a saída de depuração de um módulo como um todo ou partes dele.

7. Plano
Plano pega um objeto e o achata. Você também pode recolher um objeto separado por chave. [Nota. trad. - não apenas um ponto pode ser um separador].

Fontes planas
Instalação
yarn add flat
Inscrição
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
O JSON5 Data Interchange Format é um superconjunto do JSON que visa aliviar algumas das limitações do JSON, estendendo sua sintaxe para incluir alguns dos recursos do ECMAScript 5.1 .

Fontes JSON5
Instalação
yarn add json5
const JSON5 = require('json5')
Inscrição
Preste atenção à extensão do arquivo. JSON5 é um superconjunto, uma extensão 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 é uma ótima ferramenta para evitar erros e definir padrões de codificação para equipes de desenvolvimento. ESLint é uma ferramenta para identificar e representar padrões encontrados no código ECMAScript / JavaScript.

Fontes ESLint
Instalação e aplicação
yarn add eslint
Em seguida, configure o arquivo de configuração:
./node_modules/.bin/eslint --init
Depois disso, você pode executar o ESLint em qualquer arquivo ou diretório, por exemplo:
./node_modules/.bin/eslint yourfile.js
Documentação com muitos exemplos de introdução e configuração.
10. PM2
PM2 é um gerenciador de processo de produção com balanceador de carga integrado. Ele permite que você mantenha os aplicativos em execução o tempo todo, recarregue-os sem tempo de inatividade e facilita as tarefas comuns de administração do sistema.

Fontes pm2
Instalação
yarn add global pm2
Lançamento de aplicativo
Você pode executar qualquer aplicativo (Node.js, Python, Ruby, binários
$PATH
e assim por diante) assim:
pm2 start app.js
Seu aplicativo agora está sendo executado sob o controle de um daemon e continuamente monitorado e mantido. Saiba mais sobre gerenciamento de processos, início rápido .
E aqui está como você pode listar todos os aplicativos em execução:
pm2 ls

Verifique a documentação oficial para uma lista completa de recursos e capacidades.
11. Capacete
O Helmet ajuda a proteger aplicativos express por meio de cabeçalhos HTTP. Não é uma bala de prata, mas pode ajudar.

Fontes de capacetes
Instalação
yarn add helmet
Inscrição
Helmet
é escrito no estilo Connect e é compatível com estruturas como Express . Se precisar de suporte Koa, consulte koa-helmet
.)
const express = require("express");
const helmet = require("helmet");
const app = express();
app.use(helmet());
A função de capacete envolve 11 middleware menor. Em outras palavras, 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. Compressão
A compressão é uma ferramenta de compressão de dados.

Fontes de compressão
Instalação
yarn add compression
Inscrição
Ao usar este módulo junto com o express, ou
connect
apenas chame o compression()
middleware. As solicitações que passam pelo middleware serão compactadas.
const compression = require('compression')
const express = require('express')
const app = express()
//
app.use(compression())// ...
Quais ferramentas você usa para trabalhar com o NodeJS?
Descubra os detalhes de como obter uma profissão de alto perfil do zero ou Subir de nível em habilidades e salários, fazendo cursos online SkillFactory:
- Curso de JavaScript (12 meses)
- - (8 )
- Java- (18 )
E