以下にリストされているものはすべて多くの人に知られていますが、一部の人にとっては、ある種の入力された文字を節約する楽しい発見になる可能性があります。
事前/事後myscript
時々、特定のルーチンを自動化するために、異なるビルドツールの形でNメガバイトの依存関係に沿ってドラッグする必要がほとんどなく、 @ substackの記事に触発されて、 著者はnpmスクリプトで書き始めることができますコマンドのリストと「&&」で構成される長い行。 少なくとも1つの方法は、1つの複雑なチームをいくつかのより単純なチームに分割することです。 最も注目すべきことは、
npm run-script myscript
を実行すると、npmはpremyscriptおよびpostmyscriptにリストされているコマンドをそれぞれスクリプトの前後に実行しようとすることです。 したがって、1つのスクリプトを構成するために使用された3つの複雑なコマンドは、単純に3つのスクリプトに分割できます。
これを担当するコードは非常にシンプルで、コマンド名に事前/事後を追加し、それが特別な方法で処理される事前/事後コマンドまたは「再起動」コマンドでない場合、それらを実行しようとします。
run-scriptの代わりにnpm run、npm installの代わりにnpm i
タイトルは、原則としてすべてを説明しています。「npm run-script」の代わりに、「npm run」または「npm install」コマンドの実行に対応する「npm i」を見ることができます。 これを行うコードは簡単です。abbrev-jsライブラリを使用すると、リストのすべてのコマンドが巨大な辞書に変わります。この辞書では、略語は次の形式の単語です。
{ i: 'install', in: 'install', ins: 'install', ...
そして、適切なコマンドを実行します。
スクリプトで実行可能ファイルのパスを記述する必要はありません
ローカルにインストールされたnpmパッケージをバイナリで実行するためにnpmスクリプトが使用される場合があります。 しかし、多くの場合、1つの便利な機能について知らないことがあります。実行時にnpm が node_modules / .binフォルダーをPATH変数に追加します。 つまり、ローカルにインストールされたモカがある場合は、書く必要はありません
"scripts": { "test": "./node_modules/.bin/mocha" }
そして、単に
"test": "mocha"
書きます。 これに対する素晴らしいボーナスは、Windowsの開発者が、何も開始しないと不平を言うのをやめることです(理由は、途中で異なる区切り文字が使用されるためです)。
ボーナス:モジュールファイルが必要
requireコマンドは、モジュール名(相対パスではなく)を操作するときに、node_modulesにインストールされているモジュールのルートからindex.js / index.nodeファイルをロードできるだけでなく、モジュール内から任意のファイルをロードする機能も提供します(カプセル化、しかし時々役立つことがあります)。 したがって、
require('module/lib/hidden-stuff')
実行できます。
ボーナス2:NPMのイースターエッグ
NPMには、 面白いイースターエッグがいくつかあります。