4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-09-30

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構成を要求します。

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

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

.env
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_o_eRezYadrpuOxN8Qm1kRQ.png

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

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

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

111111.png

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

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
https://note.com/DevStory

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?