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の実装する方法の例:
{
"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構成を要求します。
require('dotenv').config()
プロジェクトのルートディレクトリに.env
ファイルを作成します。 NAME = VALUE
の形式で新しい行に環境変数を追加します。例えば:
DB_HOST=localhost
DB_USER=root
DB_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
})
date-fns - 24k Stars
Date-fnsはlodashに似ていますが、日付用です。日付の操作を簡単にする多くのユーティリティ関数が含まれています。
Date-fnsは、ブラウザーとNodeJS環境でJavaScriptの日付を操作するための、最も包括的でありながらシンプルで一貫的のあるツールセットを提供します。
インストール方法
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
// ]
その他の例と使用例については、ドキュメントを参照してください
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ロギングライブラリです。
const bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});
log.info("hi");
node sample.js
を実行すると、コンソールに返される内容は次のとおりです。
Ramda - 20k Stars
Rambdaは、JavaScriptプログラマー向けの実用的で機能的なユーティリティライブラリです。Rambdaはより純粋な機能的なスタイルを強調しています。
不変性と副作用の無い機能は、Rambdaの設計の中心です。シンプルとエレガントなコードで仕事を成し遂げるのに役立ちます。
インストール方法
yarn add ramda
使用法
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
使用法
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
上記のコード
これにより、モジュールのさまざまな部分でけでなく、モジュール全体のデバッグ出力を切り替えることができます。
flat - 1.2k Stars
flatは、ネストされたJavaScriptオブジェクトを受け取り、それをフラット化(平坦化)します。区切られたキーを使用してオブジェクトを平坦化しないこともできます。
インストール方法
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
// }
JSON5 - 4k Stars
JSON5 Data Interchange Format(データ交換フォーマット)はJSONのスーパーセットであり、構文を拡大してECMAScript 5.1の一部を含めることにより、JSONの制限の一部を軽減することを目的としています。
インストール方法
yarn add json5
const JSON5 = require('json5')
使用法
ファイル拡張子(.json5)に注意ください。JSON5はJSONの拡張機能およびスーパーセットです。
{
// 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
機能と可能性の完全なリストについては、ドキュメントを参照てください。
Helmet - 7.5k Stars
Helmetライブラリは、さまざまなHTTPヘッダーを設定することで、Expressアプリを保護するのに役立ちます。「それは特効薬ではありませんが、それは助けになります!」
インストール方法
yarn add helmet
使用法
HelmetはConnect-style middlewareであり、Expressなどのフレームワークと互換性があります。(Koaのサポートは koa-helmetです)
const express = require("express");
const helmet = require("helmet");
const app = express();
app.use(helmet());
トップレベルのhelmet
機能は、11個の小さなミドルウェアのラッパーです。言い換えれば、これら2つのことは同等です。
// これ...
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で圧縮を呼び出すだけです。ミドルウェアを通過するリクエストで圧縮されます。
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