在我看来,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 [email protected] dependencies --json
类似地,我们可以通过运行以下命令来发现{
"optimist": "*",
"estraverse": "~1.3.0",
"esprima": "*",
"escope": "1.0.0"
}
版本eslint
的devDependencies:
0.1.2
这将产生如下内容:
npm show [email protected] 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”然后,它将在浏览器中加载该特定发行版/版本的源代码文件。
从文件列表中找到package.json
文件,然后单击它。这将在浏览器中加载package.jsonhttps://npm.anvaka.com是最新版本的eslint的完整依赖关系树/图形(许多层次,很深)。