确定npm将为给定版本范围选择的软件包版本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了确定npm将为给定版本范围选择的软件包版本相关的知识,希望对你有一定的参考价值。

当我运行npm install react@^15时,它会自动选择满足^15的最大版本。是否有CLI命令或Node API可用于确定npm将安装哪个版本,而不实际安装它?

我可以做到以下几点,但我正在寻找更简洁的东西:

const semver = require('semver')
const exec = require('child-process-async')

async function resolveVersion(pkg: string, range: string): Promise<?string> 
  const result = JSON.parse((await exec(`npm view --json $pkg verisons dist-tags`)).stdout)
  return result['dist-tags'][range] || semver.maxSatisfying(versions, range)

答案

是的,你可以使用--dry-run标志:

--dry-run参数将以通常的方式报告安装将在没有实际安装任何内容的情况下完成的操作。

例:

> npm install react@^15 --dry-run

+ react@15.6.2
added 18 packages in 0.673s

以上是关于确定npm将为给定版本范围选择的软件包版本的主要内容,如果未能解决你的问题,请参考以下文章

NPM有关确定与旧软件包版本的依赖关系的问题

如何查看给定 npm 模块的依赖树?

软件版本控制规范

介绍vue-cli

如何安装小于任何特定版本的npm软件包

Vue-cli