如何列出所有必需的 npm 对等依赖项



如何列出项目中所有当前需要的对等依赖项?

我尝试过搜索,但我只找到一堆自定义包来检查对等依赖关系。我已经知道它们目前还可以,但我想要一个列表,列出它们实际上是什么软件包和版本。

关于如何做到这一点的任何想法?

如果按包的名称搜索,则运行以下命令会给出对等状态

npm info bootstrap peerDependencies
{ jquery: '1.9.1 - 3', 'popper.js': '^1.16.0' }

在整个package.json文件上运行它是我不熟悉的

您可以使用从项目文件夹启动的以下 bash 脚本来执行此操作。为了便于理解,它为每个匹配的包调用node.json。为了提高性能,您可以将多个 here 文档替换为单个文档(围绕 for 循环)并调用节点一次。

#!/bin/bash
for d in $(find node_modules -name package.json 
-exec grep -lw peerDependencies {} ;)
do
node << EOF
const {peerDependencies } = require('./$d');
for (k in peerDependencies) {
console.log('File $d:', k, peerDependencies[k]);
}
EOF
done

这里是性能更高的版本:

#!/bin/bash                                                                      
for d in $(find node_modules -name package.json                                 
-exec grep -lw peerDependencies {} ;)                                
do                                                                               
echo "m = require('./$d');                                               
for (k in m.peerDependencies) {                                                  
console.log('File $d:', k, m.peerDependencies[k]);                           
}"                                                                               
done |                                                                           
node                                  

这是一个依赖于jq实用程序的单行代码。

jq ".dependencies,.devDependencies | keys | flatten[]" package.json | xargs -t -I {} npm info {} peerDependencies

这将从dependencies中提取键并devDependenciespackage.json的对象,然后将这些键通过管道传输到npm info,在每一步打印生成的命令。

最新更新