如何列出项目中所有当前需要的对等依赖项?
我尝试过搜索,但我只找到一堆自定义包来检查对等依赖关系。我已经知道它们目前还可以,但我想要一个列表,列出它们实际上是什么软件包和版本。
关于如何做到这一点的任何想法?
如果按包的名称搜索,则运行以下命令会给出对等状态
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
中提取键并devDependencies
package.json
的对象,然后将这些键通过管道传输到npm info
,在每一步打印生成的命令。