Русский
Русский
English
Статистика
Реклама

Перевод NodeJS 12 пакетов для продуктивности разработчика



Менеджер процессов для продакшна с балансировщиком нагрузки. Обёртки над отладкой и хуками Git, защита express-приложений через HTTP-заголовки, утилита в более чем 180 функциями для работы с датами и другие инструменты, которые сэкономят ваше время. Подборка особенно полезна начинающим разработчикам NodeJS, но может порадовать опытных скептиков.

Всякий раз, когда вам нужно решить проблему с кодом, есть вероятность, что пакет для решения вашей проблемы уже существует. Вот список пакетов, о которых, я думаю, должен знать каждый разработчик. Рассматривайте эти npm-пакеты как то, что сэкономит ваше время.

1. Husky


Husky упрощает реализацию хуков в Git. Она позволяет требовать, чтобы все автоматически линтовали и тестировали код перед коммитом или отправкой в репозиторий.


Исходники husky

Установка


yarn add husky

Применение


Пример хуков с husky:

// package.json{  "husky": {    "hooks": {      "pre-commit": "npm lint",      "pre-push": "npm test"    }  }}

pre-commit запускается перед коммитом.
pre-push перед отправкой в репозиторий.



2. Dotenv


Dotenv модуль без зависимостей. Он загружает переменные среды из файла .env в process.env. Хранение конфигурации в среде отдельно от кода основано на методологии приложения двенадцати факторов. Исходники dotenv.

Установка


yarn add dotenv

Применение


Как можно раньше в вашем приложении пропишите require и установите значения dotenv:

require('dotenv').config()

Создайте .env файл в корневом каталоге вашего проекта. Добавьте переменные среды в новые строки в виде NAME=VALUE. Например:

DB_HOST=localhostDB_USER=rootDB_PASS=s1mpl3

Теперь process.env содержит ключи и значения из файла .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 похож на lodash, но создан для работы с датами. Предоставляет полный, но простой и последовательный набор инструментов манипуляций с датами JavaScript в браузере и Node.JS.


Исходники date-fns

Установка


yarn add date-fns

Применение


Пример с 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  // ]

Документация с примерами и вариантами использования.



4. Bunyan


Bunyan это простая в использовании и производительная библиотека логирования JSON для Node.


Исходники bunyan

Установка


yarn add bunyan

Обратите внимание: CLI bunyan написан так, чтобы быть совместимым (в пределах разумного) со всеми версиями логов Bunyan. Поэтому вы можете установить его глобально: yarn add global bunyan, чтобы получить этот инструмент в PATH, а затем использовать локальные установки Bunyan для приложений.

Применение


Bunyan это простая и быстрая библиотека ведения журнала JSON для сервисов Node.js.

// hi.jsconst bunyan = require('bunyan');const log = bunyan.createLogger({name: "myapp"});log.info("hi");

Вот что возвращается на консоль, если вы запускаете node hi.js.





5. Ramda


Ramda это практичная и полезная библиотека в функциональном стиле. Она подчеркивает чистый функциональный стиль. Неизменность и свободные от побочных эффектов функции лежат в основе философии дизайна Ramda. Такой подход может помочь вам писать простой, элегантный код.


Исходники ramda

Установка


yarn add ramda

Применение


import * as R from 'ramda'const greet = R.replace('{name}', R.__, 'Hello, {name}!'); greet('Alice'); //=> 'Hello, Alice!'

Примеры кода



6. Debug


Debug это крошечная утилита отладки JavaScript, смоделированная по образцу техники отладки Node.JS.


Исходники Debug

Установка


yarn add debug

Применение


Debug предоставляет функцию. Просто передайте этой функции имя вашего модуля, и она вернёт декорированную версию console.error для передачи отладочных операторов.

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

Позволяет показывать и прятать выходные данные отладки для модуля в целом или его частей.




7. Flat


Flat принимает объект и делает его плоским. Можно также свернуть объект, разделённый ключами. [Прим. перев. разделиелем может быть не только точка].


Исходники Flat

Установка


yarn add flat

Применение


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


Формат обмена данными JSON5 это надмножество JSON, целью которого является смягчение некоторых ограничений JSON путём расширения его синтаксиса для включения некоторых возможностей ECMAScript 5.1.


Исходники JSON5

Установка


yarn add json5  const JSON5 = require('json5')

Применение


Обратите внимание на расширение файла. JSON5 это надмножество, расширение 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 это замечательный инструмент, чтобы избегать ошибок и установить стандарты кодирования командам разработчиков. ESLint инструментом для выявления и представления закономерностей, обнаруженных в коде ECMAScript/JavaScript.


Исходники ESLint

Установка и применение


yarn add eslint

Затем настройте конфигурационный файл:

./node_modules/.bin/eslint --init

После этого можно запускать ESLint в любом файле или каталоге, например:

./node_modules/.bin/eslint yourfile.js

Документация со множеством примеров по началу работы и настройке.



10. PM2


PM2 это менеджер процессов для продакшна со встроенным балансировщиком нагрузки. Он позволяет вам сохранять приложения постоянно работоспособными, перезагружать их без простоев и облегчать общие задачи системного администрирования.


Исходники pm2

Установка


yarn add global pm2

Запуск приложения


Вы можете запустить любое приложение (Node.js, Python, Ruby, бинарные файлы в $PATH и так далее) вот так:

pm2 start app.js

Теперь ваше приложение выполняется под контролем демона, непрерывно контролируется и поддерживается. Подробнее об управлении процессами, быстрый старт.

А вот как вы можете вывести список всех запущенных приложений:

pm2 ls



Ознакомьтесь с официальной документацией, чтобы узнать полный список функций и возможностей.



11. Helmet


Helmet помогает защитить приложения express через HTTP-заголовки. Это не серебряная пуля, но она может помочь.


Исходники Helmet

Установка


yarn add helmet

Применение


Helmet написан в стиле Connect и совместим с фреймворками, похожими на Express. Если нужна поддержка Koa, смотрите koa-helmet.)

const express = require("express");  const helmet = require("helmet");const app = express();app.use(helmet());

Функция helmet это оболочка вокруг 11 меньших промежуточных программ. Другими словами эквивалентно

// Это...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


Compression инструмент для сжатия данных.


Исходники compression

Установка


yarn add compression

Применение


При использовании этого модуля вместе с express или connect просто вызовите compression() в промежуточном ПО. Запросы, проходящие через промежуточное ПО, будут сжаты.

const compression = require('compression')  const express = require('express')const app = express()// сжимать все запросы  app.use(compression())// ...

А какие инструменты в работе с NodeJS используете вы?

image

Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя онлайн-курсы SkillFactory:



Источник: habr.com
К списку статей
Опубликовано: 15.09.2020 14:04:30
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании skillfactory

Javascript

Node.js

Программирование

Разработка веб-сайтов

Skillfactory

Nodejs

Framework

Разработка

Категории

Последние комментарии

© 2006-2020, personeltest.ru