如何确定旧npm包版本的依赖关系

如何确定旧npm包版本的依赖关系,npm,upgrade,package.json,npm-scripts,Npm,Upgrade,Package.json,Npm Scripts,在我看来,npm站点上的依赖项链接仅适用于当前/最新版本 除了下载包并检查package.json文件之外,是否还有一些我不知道的关于如何确定包的依赖版本的信息 我觉得我在浪费时间做一些我认为更容易做的事情 “在我看来,npm站点上的依赖项链接仅适用于当前/最新版本。” 是的,这是正确的,www.npmjs.com将只显示包的最新版本的依赖项 这里有两种方法可以通过编程和非编程的方式发现您想要什么 以编程方式: 使用具有以下语法的命令 npm view <pkg_name> vers

在我看来,npm站点上的依赖项链接仅适用于当前/最新版本

除了下载包并检查package.json文件之外,是否还有一些我不知道的关于如何确定包的依赖版本的信息

我觉得我在浪费时间做一些我认为更容易做的事情

“在我看来,npm站点上的依赖项链接仅适用于当前/最新版本。”

是的,这是正确的,
www.npmjs.com
将只显示包的最新版本的依赖项

这里有两种方法可以通过编程和非编程的方式发现您想要什么

以编程方式:
  • 使用具有以下语法的命令

    npm view <pkg_name> versions --json
    
    将以下内容打印到控制台:

  • 现在我们知道了可用的版本,假设我们想列出
    eslint
    version
    0.1.2
    的依赖项,我们可以运行以下命令:

    npm show eslint@0.1.2 dependencies --json
    
    npm show eslint@0.1.2 dependencies.escope
                                      ^
    
    这将打印:

    类似地,我们可以通过运行以下命令来发现
    eslint
    version
    0.1.2
    的devdependency:

    npm show eslint@0.1.2 devDependencies --json
    
    这将产生如下结果:

  • 如果您事先知道一个包有一个特定的依赖项

    比如,;回顾运行上述命令后,我们现在知道
    eslint
    version
    0.1.2
    已将
    escope
    列为依赖项

    因此,如果我们想知道
    eslint
    version
    0.1.2
    需要的
    escope
    版本,我们可以运行以下命令:

    npm show eslint@0.1.2 dependencies --json
    
    npm show eslint@0.1.2 dependencies.escope
                                      ^
    
    注意:包名在点(
    )后面,即
    .escope

    这将打印以下内容:

    1.0.0


  • 非编程方式 我想不出为什么在有CLI工具可用的情况下,要执行以下非编程方式而不是前面提到的编程方式。然而,如果你更喜欢手工任务,那么这里是

    注意:YMMV使用以下手动步骤,因为这取决于软件包的管理/维护方式

    通常,npm包的源代码将托管在GitHub上,因此您可以执行以下手动步骤。这将避免您必须下载包来检查package.json文件

    为此,我们将为
    eslint
    包演示:

    npm view eslint versions --json
    
  • 访问并在“搜索包”输入字段中键入包的名称。我们将键入
    eslint
    ,然后按回车键

  • 下一步,从软件包列表中单击
    eslint
    ,您将进入

  • 单击通常出现在网页右侧的github链接,如下所示:

  • 这将带您进入
    eslint
    repo,即

  • 在Github页面上,单击“分支”按钮,该按钮显示在源代码文件列表上方,如下所示:

  • 在随后出现的弹出面板中,单击“标记”按钮,然后从列表中找到并单击要查找其依赖项的版本标记。(注:这些标签名称通常与npm发布/发布的版本相对应)

    这将在浏览器中加载该特定版本/版本的源代码文件

  • 从文件列表中找到package.json文件并单击它。这将在浏览器中加载package.json的内容,您可以在浏览器中读取并确定其依赖性


  • 可视化依赖关系树 我有时会使用这个在线工具,它可以帮助您可视化给定包的完整依赖关系树/图-但是它仅适用于包的最新版本


    是否为最新版本的eslint提供了完整的依赖关系树/图(多个层次的深度)。

    所有
    npm view
    命令(或其别名
    npm show
    )也能成功使用。例如:
    npm show@babel/core@7.4.0相关性
    ,也符合第3点<代码>npm show@babel/core@7.4.0依赖项。@babel/helpers
    npm show eslint@0.1.2 dependencies.escope
                                      ^