NodeJS:開発者の生産性のための12のパッケージ





ロードバランサーを使用した生産用のプロセスマネージャー。デバッグおよびGitフック用のラッパー、HTTPヘッダーを介したエクスプレスアプリケーションの保護、日付を操作するための180を超える関数を備えたユーティリティ、および時間を節約するその他のツール。このコレクションは、初心者のNodeJS開発者にとって特に便利ですが、経験豊富な懐疑論者を喜ばせるかもしれません。



コードの問題を修正する必要があるときはいつでも、問題を解決するためのパッケージがすでに存在している可能性があります。これは、すべての開発者が知っておくべきパッケージのリストです。これらのnpmパッケージを時間の節約と考えてください。



1.ハスキー



Huskyを使用すると、Gitにフックを簡単に実装できます。これにより、リポジトリにコミットまたはプッシュする前に、コードを自動的にリントしてテストするように全員に要求できます。





ソースハスキー



インストール



yarn add husky


応用



フックの例husky



// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "npm lint",
      "pre-push": "npm test"
    }
  }
}


pre-commitコミット前に実行されます。

pre-pushリポジトリに送信する前に。






2. Dotenv



Dotenvは、依存関係のないモジュールです。環境変数をファイル.envからprocess.envにロードますコードとは別の環境で構成を維持することは、12要素のアプリケーション手法に基づいていますソースdotenv



インストール



yarn add dotenv


応用



アプリケーションのできるだけ早い段階でrequire、値を記述して設定します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})





3.date-fns



Date-fnslodashに似ていますが、日付を処理するように設計されています。ブラウザとNode.JSで、完全でありながらシンプルで一貫性のあるJavaScript日付操作ツールのセットを提供します。





ソース日付-fns



インストール



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


例と使用例を含むドキュメント






4.バニヤン



Bunyanは、Node用の使いやすく強力なJSONロギングライブラリです。





ソースbunyan



インストール



yarn add bunyan


注意: CLIはbunyan、すべてのバージョンのBunyanログと(理由の範囲内で)互換性があるように作成されています。したがって、グローバルにインストールできます。yarn add global bunyanこのツールをPATHインストールしてから、アプリケーションにローカルのBunyanインストールを使用します。



応用



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



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


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










5.ラムダ



Ramdaは、実用的で便利な機能スタイルライブラリです。純粋な機能スタイルを強調しています。不変性と副作用のない機能は、ラムダの設計哲学の中心です。このアプローチは、シンプルでエレガントなコードを書くのに役立ちます。





ソースラムダ



インストール



yarn add ramda


応用



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


コード例






6.デバッグ



Debugは、Node.JSデバッグ手法をモデルにした小さなJavaScriptデバッグユーティリティです。





ソースをデバッグする



インストール



yarn add debug


応用



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



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');
});
//   
// DEBUG=http:server node app.js


モジュール全体またはモジュールの一部のデバッグ出力を表示および非表示にします。








7.フラット



Flatはオブジェクトを受け取り、それを平坦化します。キーで区切られたオブジェクトを折りたたむこともできます。[注意。transl。-ピリオドだけが区切り文字になることはできません]。





ソースフラット



インストール



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







8. JSON5



JSON5 データ交換フォーマットJSONのスーパーセットであり、ECMAScript 5.1の機能の一部を含むように構文を拡張することにより、JSONの制限の一部を緩和することを目的としています





JSON5ソース



インストール



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


応用



ファイル拡張子に注意してください。JSON5は、JSONの拡張であるスーパーセットです。



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





9.ESLint



ESLintは、ミスを回避し、開発チームのコーディング標準を設定するための優れたツールです。ESLintは、ECMAScript / JavaScriptコードで見つかったパターンを識別して表すためのツールです。





ESLintソース



インストールとアプリケーション



yarn add eslint


次に、構成ファイルを設定します。



./node_modules/.bin/eslint --init


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



./node_modules/.bin/eslint yourfile.js


開始と設定の多くの例を含むドキュメント






10. PM2



PM2は、ロードバランサーを内蔵した生産プロセスマネージャーです。これにより、アプリケーションを常に実行し続け、ダウンタイムなしでリロードし、一般的なシステム管理タスクを容易にすることができます。





ソースpm2



インストール



yarn add global pm2


アプリケーションの起動



次のような任意のアプリケーション(Node.js、Python、Ruby、バイナリなど$PATHを実行できます



pm2 start app.js


これで、アプリケーションはデーモンの制御下で実行され、継続的に監視および保守されます。プロセス管理、クイックスタートの詳細をご覧ください



そして、実行中のすべてのアプリケーションを一覧表示する方法は次のとおりです。



pm2 ls






機能の完全なリストについては、公式ドキュメント確認してください






11.ヘルメット



ヘルメットは、HTTPヘッダーを介してエクスプレスアプリケーションを保護するのに役立ちます。特効薬ではありませんが、役に立ちます。





ヘルメットソース



インストール



yarn add helmet


応用



HelmetConnectスタイルで記述されており、Expressなどのフレームワークと互換性があります。Koaのサポートが必要な場合は、を参照してくださいkoa-helmet。)



const express = require("express");  
const helmet = require("helmet");
const app = express();
app.use(helmet());


ヘルメット機能は、11個の小さなミドルウェアのラッパーです。言い換えれば、



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





12.圧縮



圧縮はデータ圧縮ツールです。





圧縮ソース



インストール



yarn add compression


応用



このモジュールをエクスプレスと一緒に使用する場合またはミドルウェアをconnect呼び出す場合compression()ミドルウェアを通過するリクエストは圧縮されます。



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


NodeJSを操作するためにどのツールを使用しますか?



画像


オンラインのSkillFactoryコースを受講して、注目を集める職業をゼロから取得する方法、またはスキルと給与をレベルアップする方法の詳細を確認してください。





E







All Articles