Node.js 确定npm将为给定的版本范围选择哪个版本的包

Node.js 确定npm将为给定的版本范围选择哪个版本的包,node.js,npm,semantic-versioning,Node.js,Npm,Semantic Versioning,当我运行npm install react@^15时,它会自动选择满足^15要求的最大版本。是否有CLI命令或节点API可用于确定将安装哪个版本的npm,而无需实际安装 我可以做到以下几点,但我正在寻找更简洁的方法: const semver = require('semver') const {exec} = require('child-process-async') async function resolveVersion(pkg: string, range: string): Pr

当我运行
npm install react@^15
时,它会自动选择满足
^15
要求的最大版本。是否有CLI命令或节点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)
}
const semver=require('semver'))
const{exec}=require('child-process-async')
异步函数resolveVersion(pkg:string,range:string):PromiseYes,您可以使用以下标志:

--dry run参数将以通常的方式报告安装在没有实际安装任何东西的情况下会执行的操作

示例:

>npm安装react@^15--试运行
+ react@15.6.2
在0.673s中添加了18个包