Skip to content
Latchkey

npm Scripts vs Make: プロジェクトタスクの実行

npm scriptsはNodeエコシステム内のpackage.jsonでタスクを定義します。Makeは依存関係の追跡を備えた言語非依存のビルドツールです。

npm scriptsはpackage.jsonに置かれ、ローカルにインストールされたバイナリにアクセスしながらJavaScriptプロジェクトでbuild、テスト、lintコマンドを実行する自然な方法です。Makeは言語に中立でファイルの依存関係を追跡し、多くのツールや言語にまたがってタスクをオーケストレーションできますが、タブに敏感な構文やシェルの違いは初心者を戸惑わせることがあります。npm scriptsはJS中心のリポジトリに便利で、Makeは多言語やビルドグラフが重いプロジェクトに向いています。

npm scriptsMake
配置場所package.jsonMakefile
エコシステムNode / npm言語非依存
依存関係の追跡なしファイルのタイムスタンプ
ローカルバイナリPATHに自動追加手動でパス指定
最適な用途JS/TSプロジェクト多言語、ビルドグラフ

CIでの利用

JavaScriptまたはTypeScriptのリポジトリでは、npm scriptsがタスクを依存関係のそばに置き、CIでそのまま動作します。Makeは複数の言語をオーケストレーションしたり本物のインクリメンタルビルドが必要なときに優れています。一部のチームはnpm scriptsをJSのエントリーポイントとして使い、より広いプロジェクトの調整にMakefileやtask runnerを使います。

高速化する

node_modules(またはパッケージマネージャのストア)と任意のbuild成果物をキャッシュして、タスクがウォームな状態で始まるようにします。どちらもCIランナー上で実行され、より高速なマネージドランナーはinstall、build、テストのステップを短縮します。

結論

JavaScriptまたはTypeScriptプロジェクトで作業する場合: npm scriptsが自然で便利な選択です。複数の言語をオーケストレーションしたり依存関係を意識したビルドが必要な場合: Make。多くのリポジトリは両方を組み合わせます - JSタスクにはnpm scripts、言語をまたぐ調整にはMakeです。

関連ガイド