Quando nós usamos o Range Til (~) em uma versão de dependência, nós instalamos apenas a versão que está dentro do range patch ou minor especificado, por exemplo:
"Eu quero instalar qualquer `minor` da versão 9.1 dessa dependência"
package.json
{
"dependencies": {
"my-dependency": "~9.1"
}
}
Então qualquer versão é sempre a última versão de dentro de 9.1.x de my-dependency será instalada.
"Eu quero instalar sempre instalar a última versão 9 de `my-dependency`"
package.json
{
"dependencies": {
"my-dependency": "~9"
}
}
Fazendo isso, sempre será instalada a última versão 9.x dessa dependência. Sempre a última maior que 8 e menor 10.