NPM有关确定与旧软件包版本的依赖关系的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NPM有关确定与旧软件包版本的依赖关系的问题相关的知识,希望对你有一定的参考价值。
在我看来,npm网站上的依赖关系链接仅适用于当前/最新版本。
除了下载并检查package.json文件之外,是否还有其他一些信息让我不知道如何确定软件包具有的依赖版本?
我觉得我在浪费HOURS做一些我希望做起来容易的事情。
“在我看来,npm站点上的依赖关系链接仅适用于当前/最新版本。”
是的,www.npmjs.com
将仅显示软件包最新版本的依赖性。
这里有两种方法可以以编程方式和非编程方式找到您想要的东西。
编程:
使用以下语法使用
npm view
命令;npm view
获得npm注册表中给定软件包可用的所有版本的列表。
注意:上面的
npm view <pkg_name> versions --json
部分应替换为真实的软件包名称。例如;让我们运行以下命令,例如
<pkg_name>
包:eslint
将以下内容打印到控制台:
npm view eslint versions --json
现在我们知道可用的版本,假设我们要列出
[ "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.1.0-dev", "0.1.0", "0.1.1", "0.1.2", ... ]
版本eslint
的dependencies,我们可以运行以下命令:0.1.2
这将打印:
npm show eslint@0.1.2 dependencies --json
类似地,我们可以通过运行以下命令来发现
{ "optimist": "*", "estraverse": "~1.3.0", "esprima": "*", "escope": "1.0.0" }
版本eslint
的devDependencies:0.1.2
这将产生如下内容:
npm show eslint@0.1.2 devDependencies --json
编辑:非编程方式
我想不出为什么要使用CLI工具时,您希望执行以下非编程方式而不是上述编程方式的原因。但是,如果您更喜欢手动任务,那么这里......>
注
:YMMV使用以下手动步骤,这取决于如何管理/维护软件包。通常,npm软件包的源代码将托管在GitHub上,因此您可以执行以下手动步骤。这将避免您必须下载软件包以检查package.json
文件。为此,我们将为{
"vows": "~0.7.0",
"sinon": "*",
"commonjs-everywhere": "~0.9.0",
"mocha": "~1.13.0",
"chai": "~1.8.1",
"grunt": "~0.4.1",
...
}
包进行演示:
访问
eslint
,然后在“ Search Packages”]]输入字段中输入包的名称。我们将键入npmjs.com并按回车键。下一步,从软件包列表中单击
eslint
,将您带到eslint
。单击github
链接,该链接通常显示在网页的右侧,看起来像这样:在Github页面上,单击“ Branch”
按钮-出现在源代码文件列表上方,看起来像这样:在随后出现的pop-up
面板中,单击“ Tags” 按钮,然后从要查找其依赖项的列表中找到并单击version标签。 (注意:这些标记名称通常对应于已发布/发布到npm的版本)从文件列表中找到package.json
文件,然后单击它。这将在浏览器中加载package.json 的内容,您可以在其上阅读并确定其依赖性。
然后,它将在浏览器中加载该特定发行版/版本的源代码文件。
可视化依赖树
https://npm.anvaka.com是最新版本的eslint的完整依赖关系树/图形(许多层次,很深)。
以上是关于NPM有关确定与旧软件包版本的依赖关系的问题的主要内容,如果未能解决你的问题,请参考以下文章
由于 ERESOLVE 无法解析依赖关系树,因此无法安装软件包 Pinia
npm:依赖关系vs devDependencies与捆绑的依赖关系
如何找到具有特定依赖关系的 NPM 模块版本 - 例如,哪个版本的 webpack-cli 与 webpack@4.46.0 一起使用?