Einige Projekte erfordern häufig bestimmte Versionen lokal installierter Programme. Dies kann entweder eine bestimmte Version von node.js oder npm sein (z. B. npm @ 7 mit Unterstützung für Arbeitsbereiche) oder eine bestimmte Datenbank, ein Paketmanager und andere Dienstprogramme, die nicht von npm installiert werden können . Ich schreibe die Befehle oft in die Chats, Readme oder das Wiki.
Mit npm können Sie die erforderlichen Versionen von node und npm in der Datei package.json deklarieren , diese jedoch in keiner Weise überprüfen. Um dies zu beheben und die Liste der Tools zu erweitern, wurde eine kleine npm- Paket- Engine-Version geschrieben . Das Paket funktioniert sehr einfach: Zuerst liest es die Beschreibung der erforderlichen Software aus package.json und prüft dann, ob das Programm installiert ist und ob die installierte Version mit der beschriebenen übereinstimmt. Wenn die Überprüfungen fehlschlagen, wird eine Liste mit Fehlern angezeigt.
Um das Paket verwenden zu können, müssen Sie das Paket zuerst von npm installieren :
npm install --save-dev engine-version
Beschreiben Sie die Liste der erforderlichen Tools in package.json ( Beschreibungsformat ) :
{
...
"engines": {
"node": ">=16.0.0",
"npm": "~7.0.0",
"mysql": "*"
},
...
}
Fügen Sie beispielsweise vor dem Paketerstellungsprozess ein Skript hinzu, das die Prüfung in package.json auslöst :
{
...
"scripts": {
"prebuild": "engine-version",
"build": "my_build_script"
},
...
}
Weiter ist geplant:
Machen Sie Fehler informativer
Mit Argumenten konfigurierbar (Warnungen statt Fehler)
Fügen Sie alternative Arten der Versionsprüfung für gängige Programme hinzu, die das Argument --version nicht verstehen (jetzt wird die installierte Version überprüft, indem Sie das Programm mit der Option --version im untergeordneten Prozess aufrufen ).