Gestionnaire de processus pour la production avec équilibreur de charge. Des wrappers pour le débogage et les hooks Git, la sécurisation des applications express via des en-têtes HTTP, un utilitaire avec plus de 180 fonctions pour travailler avec des dates et d'autres outils qui vous feront gagner du temps. Cette collection est particulièrement utile pour les développeurs NodeJS novices, mais peut plaire aux sceptiques chevronnés.
Chaque fois que vous avez besoin de résoudre un problème avec votre code, il y a de fortes chances qu'un package existe déjà pour résoudre votre problème. Voici une liste de packages que je pense que chaque développeur devrait connaître. Considérez ces packages npm comme un gain de temps.
1. Husky
Husky facilite l'implémentation de hooks dans Git. Il vous permet d'exiger que tout le monde lint et teste automatiquement votre code avant de le valider ou de le pousser vers le référentiel.
Sources husky
Installation
yarn add husky
Application
Exemple de crochets avec
husky
:
// package.json
{
"husky": {
"hooks": {
"pre-commit": "npm lint",
"pre-push": "npm test"
}
}
}
pre-commit
s'exécute avant la validation.
pre-push
avant de soumettre au référentiel.
2. Dotenv
Dotenv est un module sans dépendances. Il charge les variables d'environnement d'un fichier
.env
dans process.env . Le maintien de la configuration dans un environnement séparé du code est basé sur la méthodologie d' application à douze facteurs . Sources dotenv .
Installation
yarn add dotenv
Application
Dès que possible dans votre application, écrivez
require
et définissez les valeurs dotenv
:
require('dotenv').config()
Créez un
.env
fichier dans le répertoire racine de votre projet. Ajoutez des variables d'environnement sur de nouvelles lignes en tant que NAME=VALUE
. Par exemple:
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
process.env
Contient
maintenant les clés et les valeurs du fichier .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 est similaire à lodash, mais conçu pour fonctionner avec des dates. Fournit un ensemble complet mais simple et cohérent d'outils de manipulation de date JavaScript dans le navigateur et Node.JS.
Sources date-fns
Installation
yarn add date-fns
Application
Exemple avec 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
// ]
Documentation avec des exemples et des cas d'utilisation.
4. Bunyan
Bunyan est une bibliothèque de journalisation JSON puissante et facile à utiliser pour Node.
Sources Bunyan
Installation
yarn add bunyan
Remarque: la CLI est
bunyan
écrite pour être compatible (dans des limites raisonnables) avec toutes les versions des journaux Bunyan. Par conséquent, vous pouvez l'installer globalement: yarn add global bunyan
pour obtenir cet outil PATH
, puis utiliser les installations locales de Bunyan pour les applications.
Application
Bunyan est une bibliothèque de journalisation JSON simple et rapide pour les services Node.js.
// hi.jsconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});
log.info("hi");
Voici ce qui est renvoyé à la console si vous exécutez
node hi.js
.
5. Ramda
Ramda est une bibliothèque de styles fonctionnels pratique et utile. Il met l'accent sur un style fonctionnel pur. L'immuabilité et la fonctionnalité sans effets secondaires sont au cœur de la philosophie de conception de Ramda. Cette approche peut vous aider à écrire du code simple et élégant.
Sources ramda
Installation
yarn add ramda
Application
import * as R from 'ramda'
const greet = R.replace('{name}', R.__, 'Hello, {name}!');
greet('Alice'); //=> 'Hello, Alice!'
Exemples de code
6. Débogage
Debug est un petit utilitaire de débogage JavaScript calqué sur la technique de débogage Node.JS.
Déboguer les sources
Installation
yarn add debug
Application
Debug fournit une fonction. Passez simplement le nom de votre module à cette fonction, et il retournera une version décorée
console.error
pour passer les instructions de débogage.
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
Affiche et masque la sortie de débogage pour un module dans son ensemble ou des parties de celui-ci.
7. Plat
Flat prend un objet et l'aplatit. Vous pouvez également réduire un objet séparé par clé. [Remarque. trad. - non seulement un point peut être un séparateur].
Appartement Sources
Installation
yarn add flat
Application
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
Le format d'échange de données JSON5 est un sur-ensemble de JSON qui vise à atténuer certaines des limitations de JSON en étendant sa syntaxe pour inclure certaines des fonctionnalités d' ECMAScript 5.1 .
Sources JSON5
Installation
yarn add json5
const JSON5 = require('json5')
Application
Faites attention à l'extension du fichier. JSON5 est un sur-ensemble, une extension 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 est un excellent outil pour éviter les erreurs et définir des normes de codage pour les équipes de développement. ESLint est un outil pour identifier et représenter les modèles trouvés dans le code ECMAScript / JavaScript.
Sources ESLint
Installation et application
yarn add eslint
Ensuite, configurez le fichier de configuration:
./node_modules/.bin/eslint --init
Après cela, vous pouvez exécuter ESLint dans n'importe quel fichier ou répertoire, par exemple:
./node_modules/.bin/eslint yourfile.js
Documentation avec de nombreux exemples de mise en route et de configuration.
10. PM2
PM2 est un gestionnaire de processus de production avec équilibreur de charge intégré. Il vous permet de maintenir les applications en cours d'exécution à tout moment, de les recharger sans temps d'arrêt et de faciliter les tâches d'administration système courantes.
Sources pm2
Installation
yarn add global pm2
Lancement d'application
Vous pouvez exécuter n'importe quelle application (Node.js, Python, Ruby, binaires,
$PATH
etc.) comme ceci:
pm2 start app.js
Votre application s'exécute maintenant sous le contrôle d'un démon et est surveillée et maintenue en permanence. En savoir plus sur la gestion des processus, démarrage rapide .
Et voici comment répertorier toutes les applications en cours d'exécution:
pm2 ls
Consultez la documentation officielle pour une liste complète des fonctionnalités et capacités.
11. Casque
Helmet permet de sécuriser les applications express via des en-têtes HTTP. Ce n'est pas une solution miracle, mais cela peut aider.
Sources de casque
Installation
yarn add helmet
Application
Helmet
est écrit dans le style Connect et est compatible avec des frameworks comme Express . Si vous avez besoin de l'assistance Koa, voir koa-helmet
.)
const express = require("express");
const helmet = require("helmet");
const app = express();
app.use(helmet());
La fonction casque est un wrapper autour de 11 middleware plus petits. En d'autres termes, équivalent à
// ...
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. Compression
La compression est un outil de compression de données.
Sources de compression
Installation
yarn add compression
Application
Lorsque vous utilisez ce module avec express, ou
connect
appelez simplement un compression()
middleware. Les requêtes passant par le middleware seront compressées.
const compression = require('compression')
const express = require('express')
const app = express()
//
app.use(compression())// ...
Quels outils utilisez-vous pour travailler avec NodeJS?
Découvrez comment obtenir une profession de haut niveau à partir de zéro ou augmenter vos compétences et vos salaires en suivant les cours en ligne SkillFactory:
- Cours JavaScript (12 mois)
- - (8 )
- Java- (18 )
E