一部のプロジェクトでは、ローカルにインストールされたプログラムの特定のバージョンが必要になることがよくあります。これは、node.jsまたはnpmの特定のバージョン(たとえば、ワークスペースをサポートするnpm @ 7)、またはnpmからインストールできない特定のデータベース、パッケージマネージャー、およびその他のユーティリティのいずれかです。多くの場合、チャット、readme、またはwikiでコマンドをコミットします。
npmを 使用すると、package.jsonファイルで必要なバージョンのnodeとnpmを宣言できますが、それらをチェックすることはありません。これを修正してツールのリストを拡張するために、小さなnpmパッケージengine-versionが作成されました。パッケージは非常に簡単に機能します。まず、package.jsonから必要なソフトウェアの説明を読み取り、次にプログラムがインストールされているかどうか、およびインストールされているバージョンが説明されているバージョンと一致するかどうかを確認します。また、チェックが失敗した場合は、エラーのリストが表示されます。

パッケージの使用を開始するには、最初にnpmからパッケージをインストールする必要があります。
npm install --save-dev engine-versionpackage.json(説明形式)で必要なツールのリストを記述します。
{
...
"engines": {
"node": ">=16.0.0",
"npm": "~7.0.0",
"mysql": "*"
},
...
}たとえば、パッケージビルドプロセスの前に、package.jsonのチェックインをトリガーするスクリプトを追加します。
{
...
"scripts": {
"prebuild": "engine-version",
"build": "my_build_script"
},
...
}
さらに、次のことを行う予定です。
間違いをより有益にする
引数で構成可能(エラーではなく警告)
--version引数を理解しない一般的なプログラムのバージョンチェックの代替タイプを追加します(現在、インストールされたバージョンは、子プロセスで--versionオプションを指定してプログラムを呼び出すことによってチェックされます)