Alguns projetos geralmente requerem versões específicas de programas instalados localmente. Pode ser uma versão específica do node.js ou npm (por exemplo, npm @ 7 com suporte a espaços de trabalho) ou um banco de dados específico, gerenciador de pacotes e outros utilitários que não podem ser instalados a partir do npm . Freqüentemente, eu envio os comandos em chats, leia-me ou wiki.
O npm permite que você declare as versões necessárias de node e npm no arquivo package.json , mas não as verifica de forma alguma. Para consertar isso e expandir a lista de ferramentas, um pequeno pacote npm engine-version foi escrito . O pacote funciona de forma muito simples: primeiro, ele lê a descrição do software necessário em package.json e, em seguida, verifica se o programa está instalado e se a versão instalada corresponde à descrita. E se as verificações falharem, uma lista de erros será exibida.

Para começar a usar o pacote, você deve primeiro instalar o pacote do npm :
npm install --save-dev engine-version
Descreva a lista de ferramentas necessárias em package.json ( formato de descrição ) :
{
...
"engines": {
"node": ">=16.0.0",
"npm": "~7.0.0",
"mysql": "*"
},
...
}
Adicione um script que acione a verificação em package.json , por exemplo, antes do processo de compilação do pacote:
{
...
"scripts": {
"prebuild": "engine-version",
"build": "my_build_script"
},
...
}
Além disso, está planejado fazer:
Faça erros mais informativos
Configurável com argumentos (avisos em vez de erros)
Adicionar tipos alternativos de verificação de versão para programas populares que não entendem o argumento --version (agora a versão instalada é verificada chamando o programa com a opção --version no processo filho)