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
ファイルで定義したキーと値が含まれて、アクセスできます。
constdb=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(newDate(2014,1,11),'yyyy-MM-dd')//=> '2014-02-11'constdates=[newDate(1995,6,2),newDate(1987,1,11),newDate(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ロギングライブラリです。
constbunyan=require('bunyan');constlog=bunyan.createLogger({name:"myapp"});log.info("hi");
node sample.js
を実行すると、コンソールに返される内容は次のとおりです。
Ramda - 20k Stars
Rambdaは、JavaScriptプログラマー向けの実用的で機能的なユーティリティライブラリです。Rambdaはより純粋な機能的なスタイルを強調しています。
不変性と副作用の無い機能は、Rambdaの設計の中心です。シンプルとエレガントなコードで仕事を成し遂げるのに役立ちます。
インストール方法
yarn add ramda
使用法
import*asRfrom'ramda'constgreet=R.replace('{name}',R.__,'Hello, {name}!');greet('Alice');//=> 'Hello, Alice!'
debug - 9k Stars
Debugは、NodeJSコアのデバッグ手法をモデルにした小さなJavaScriptデバッグユーティリティです。
debugは関数を曝します。この関数にモジュールの名前を渡すだけで、デバッグステートメントを渡すための装飾バージョンのconsole.error
が返されます。
インストール方法
yarn add debug
使用法
constdebug=require('debug');constlog=debug('http:server');consthttp=require('http');constname='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
使用法
constflatten=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の制限の一部を軽減することを目的としています。
インストール方法
yarnaddjson5constJSON5=require('json5')
使用法
ファイル拡張子(.json5)に注意ください。JSON5はJSONの拡張機能およびスーパーセットです。
{// commentsunquoted:'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です)
constexpress=require("express");consthelmet=require("helmet");constapp=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で圧縮を呼び出すだけです。ミドルウェアを通過するリクエストで圧縮されます。
constcompression=require('compression')constexpress=require('express')constapp=express()// compress all responsesapp.use(compression())// ...