Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9130

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

$
0
0

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
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ライブラリの簡単なサンプルを次に示します。

sample.js
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ロギングライブラリです。

sample.js
constbunyan=require('bunyan');constlog=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*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

使用法

sample.js
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

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

flat - 1.2k Stars

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

インストール方法

yarn add flat

使用法

sample.js
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の制限の一部を軽減することを目的としています。

インストール方法

index.js
yarnaddjson5constJSON5=require('json5')

使用法

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

sample.js
{// 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

111111.png

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

Helmet - 7.5k Stars

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

インストール方法

yarn add helmet

使用法

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

sample.js
constexpress=require("express");consthelmet=require("helmet");constapp=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
constcompression=require('compression')constexpress=require('express')constapp=express()// compress all responsesapp.use(compression())// ...

参考

12 Useful Packages Every Node.js Developer Should Know


Viewing all articles
Browse latest Browse all 9130

Trending Articles