見出し画像

NodeJS開発者が知っておくべき12の便利なパッケージ

NodeJSにはコードの再利用に最適です。そしてコードの再利用の環境はNPMパッケージです。

NPMパッケージは、時間と労力を大幅に節約します。日付ライブラリが必要ですか?そのためのパッケージがあります。ユーティリティライブラリが必要ですか?問題ありません。パッケージをインストールするだけです。コードの問題を解決する必要があるときはいつでも、ニーズに合わせたパッケージがある可能性があります。

これは、すべてのNodeJS開発者が知っておくべきNPMパッケージのリストです。これらのNPMパッケージを時間の節約と魔法の妖精のヘルパーとして扱ってください。

生産性を向上させるNodeJSパッケージ

husky - 20k Stars

Huskyは、Git Hooksの実装を簡単にします(Git Hooksとはスクリプトです。GitがCommitやPushなどの重要なコメントを実行する時に自動的に実行されます)。チームと協力して、チーム全体にコーディング標準を適用したいですか?問題ない!Huskyを使用すると、リポジトリにコミットまたはプッシュする前に、コードを自動的にリント(Lint)してテストするように全員に要求できます。

インストール方法

yarn add husky

 使用法

これは、Husky Hooksの実装する方法の例:

package.json
----------------------------------------------

{
 "husky": {
   "hooks": {
     "pre-commit": "npm lint",
     "pre-push": "npm test"
   }
 }
}

- pre-commit Hooks はリポジトリにコミットする前に実装されます。
- pre-push Hooks はリポジトリにプッシュする前に実装されます。

dotenv - 12k Stars

Dotenv は、環境変数を.envファイルからprocess.envにコードするゼロ依存モジュールです。コードベースと別の環境に構成を保存することは、The Twelve-FactorApp手法に基づいています。

インストール方法


yarn add dotenv 

使用法
dotenv構成を要求します。

javascript:index.js
require('dotenv').config()


プロジェクトのルートディレクトリに.envファイルを作成します。 NAME = VALUEの形式で新しい行に環境変数を追加します。例えば:

DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3

process.envには、.envファイルで定義したキーと値が含まれて、アクセスできます。

sample.js
----------------------------------------------

const db = require('db')

db.connect({
    host: process.env.DB_HOST,
    username: process.env.DB_USER,
    password: process.env.DB_PASS
})


date-fns - 24k Stars

Date-fnsはlodashに似ていますが、日付用です。日付の操作を簡単にする多くのユーティリティ関数が含まれています。

Date-fnsは、ブラウザーとNodeJS環境でJavaScriptの日付を操作するための、最も包括的でありながらシンプルで一貫的のあるツールセットを提供します。

インストール方法

yarn add date-fns

使用法
date-fnsライブラリの簡単なサンプルを次に示します。

sample.js
----------------------------------------------

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
// ]


その他の例と使用例については、ドキュメントを参照してください。

Bunyan - 6.5k Stars


Bynyanは、Node用の把握しやすくパフォーマンスのJSONロギングライブラリです。

インストール方法

yarn add bunyan


ヒントbunyan CLIツールは、すべてのバージョンのBunyanログと(理由の範囲内で)互換性があるように作成されています。従ってyarn add global bunyan、グローバルbunyanを追加してPATHでBunyan CLIを取得してから、アプリでBunyanをNodeJSライブラリで使用するためにローカルBunyanインストールを使用することをお勧めします。

使用法
Bunyanは、NodeJSサービス用のシンプルで高速なJSONロギングライブラリです。

sample.js
----------------------------------------------

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


node sample.jsを実行すると、コンソールに返される内容は次のとおりです。

画像1

Ramda - 20k Stars

Rambdaは、JavaScriptプログラマー向けの実用的で機能的なユーティリティライブラリです。Rambdaはより純粋な機能的なスタイルを強調しています。

不変性と副作用の無い機能は、Rambdaの設計の中心です。シンプルとエレガントなコードで仕事を成し遂げるのに役立ちます。

インストール方法

yarn add ramda

使用法

sample.js
----------------------------------------------

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

上記のコード

debug - 9k Stars

Debugは、NodeJSコアのデバッグ手法をモデルにした小さなJavaScriptデバッグユーティリティです。

debugは関数を曝します。この関数にモジュールの名前を渡すだけで、デバッグステートメントを渡すための装飾バージョンのconsole.errorが返されます。

インストール方法

yarn add debug

使用法

sample.js
----------------------------------------------

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');
});

// run this command in the terminal
// DEBUG=http:server node app.js

上記のコード
これにより、モジュールのさまざまな部分でけでなく、モジュール全体のデバッグ出力を切り替えることができます。

画像2


flat - 1.2k Stars

flatは、ネストされたJavaScriptオブジェクトを受け取り、それをフラット化(平坦化)します。区切られたキーを使用してオブジェクトを平坦化しないこともできます。

インストール方法

yarn add flat

使用法

sample.js
----------------------------------------------

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
// }


JSON5 - 4k Stars

JSON5 Data Interchange Format(データ交換フォーマット)はJSONのスーパーセットであり、構文を拡大してECMAScript 5.1の一部を含めることにより、JSONの制限の一部を軽減することを目的としています。

インストール方法

index.js
----------------------------------------------

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

使用法
ファイル拡張子(.json5)に注意ください。JSON5はJSONの拡張機能およびスーパーセットです。

sample.js
----------------------------------------------

{
    // comments
    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",
}

上記のコード

ESLint - 17k Stars

ESLintは、開発チームにバグを回避し、コーディング標準を強制するための素晴らしいツールです。ESLintは、ECMAScript/JavaScriptコードで見つかったパターンを識別してレポートするためのツールです。

インストール方法 + 使用法

yarn add eslint


次に、構成ファイルを設定する必要があります。


./node_modules/.bin/eslint --init


その後、次のような任意のファイルまたはディレクトリでESLintを実行できます。

./node_modules/.bin/eslint yourfile.js


詳細な説明については、ドキュメントを参照してください。開発と構成の例は沢山あります。

PM2 - 33k Stars

PM2は、ロードバランサーが組み込まれたNodeJSアプリケーションの本番プロセスマネージャーです。これにより、アプリケーションを永久に存続させ、ダウンタイムなしでリロードし、一般なシステム管理タスクを容易にすることができます。

インストール方法

yarn add global pm2

アプリケーション起動
次のように、任意のアプリケーション(Node.js、Python、Ruby、$ PATHのバイナリ…)を起動できます。

pm2 start app.js


それで、アプリはデーモン化、可視化され、永久に存続します。プロセス管理の詳細

アプリ管理
アプリケーションが開始されると、それらを簡単に管理できます。実行中の全てアプリを一覧表示する方法は次の通りです。

pm2 ls

画像3

機能と可能性の完全なリストについては、ドキュメントを参照てください。

Helmet - 7.5k Stars

Helmetライブラリは、さまざまなHTTPヘッダーを設定することで、Expressアプリを保護するのに役立ちます。「それは特効薬ではありませんが、それは助けになります!」

インストール方法

yarn add helmet

使用法
HelmetはConnect-style middlewareであり、Expressなどのフレームワークと互換性があります。(Koaのサポートは koa-helmetです)

sample.js
----------------------------------------------

const express = require("express");
const helmet = require("helmet");

const app = express();

app.use(helmet());

トップレベルのhelmet機能は、11個の小さなミドルウェアのラッパーです。言い換えれば、これら2つのことは同等です。

sample.js
----------------------------------------------

// これ...
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());


compression - 2.3k Stars

compressionライブラリはNodeJS圧縮ミドルウェアです。

インストール方法

yarn add compression


使用法
このモジュールをExpressまたはConnectで使用する場合は、Express Middlewareで圧縮を呼び出すだけです。ミドルウェアを通過するリクエストで圧縮されます。

sample.js
----------------------------------------------

const compression = require('compression')
const express = require('express')
const app = express()
// compress all responses
app.use(compression())
// ...


参考

12 Useful Packages Every Node.js Developer Should Know
Qiita/HungF

この記事が気に入ったらサポートをしてみませんか?