Certains projets nécessitent souvent des versions spécifiques de programmes installés localement. Il peut s'agir d'une version spécifique de node.js ou npm (par exemple, npm @ 7 avec prise en charge des espaces de travail), ou d'une base de données spécifique, d'un gestionnaire de packages et d'autres utilitaires qui ne peuvent pas être installés à partir de npm . Je confie souvent les commandes aux chats, readme ou wiki.
npm vous permet de déclarer les versions requises de node et npm dans le fichier package.json , mais ne les vérifie en aucune façon. Pour résoudre ce problème et étendre la liste des outils, une petite version du moteur de package npm a été écrite . Le package fonctionne très simplement: d'abord, il lit la description du logiciel requis dans package.json , puis regarde si le programme est installé et si la version installée correspond à celle décrite. Et si les vérifications échouent, une liste d'erreurs s'affiche.
Pour commencer à utiliser le package, vous devez d'abord installer le package à partir de npm :
npm install --save-dev engine-version
Décrivez la liste des outils requis dans package.json ( format de description ) :
{
...
"engines": {
"node": ">=16.0.0",
"npm": "~7.0.0",
"mysql": "*"
},
...
}
Ajoutez un script qui déclenche l' archivage package.json , par exemple, avant le processus de création du package:
{
...
"scripts": {
"prebuild": "engine-version",
"build": "my_build_script"
},
...
}
En outre, il est prévu de faire:
Rendre les erreurs plus informatives
Configurable avec des arguments (avertissements au lieu d'erreurs)
Ajouter des types alternatifs de vérification de version pour les programmes populaires qui ne comprennent pas l'argument --version (maintenant la version installée est vérifiée en appelant le programme avec l'option --version dans le processus enfant)