一些项目通常需要本地安装程序的特定版本。它可以是node.js或npm的特定版本(例如,具有工作区支持的npm @ 7),也可以是特定的数据库,程序包管理器以及无法从npm安装的其他实用程序。我经常将命令提交给聊天室,自述文件或Wiki。
npm 允许您在package.json文件中声明节点和npm的必需版本,但不进行任何检查。为了解决此问题并扩展工具列表,编写了一个小的npm软件包engine-version。该软件包的工作原理非常简单:首先,它从package.json中读取所需软件的描述,然后查看是否已安装该程序以及所安装的版本是否与所述版本相匹配。如果检查失败,则会显示错误列表。
要开始使用该软件包,必须首先从npm安装该软件包:
npm install --save-dev engine-version
在package.json(描述格式)中描述所需工具的列表:
{
...
"engines": {
"node": ">=16.0.0",
"npm": "~7.0.0",
"mysql": "*"
},
...
}
例如,在包构建过程之前,添加一个脚本来触发package.json中的签入:
{
...
"scripts": {
"prebuild": "engine-version",
"build": "my_build_script"
},
...
}
进一步计划做:
使错误更有意义
可配置参数(警告而非错误)
为不了解--version参数的流行程序添加其他类型的版本检查类型(现在通过在子进程中使用--version选项调用该程序来检查安装的版本)