Javascript 如何查找npm重复包?
Javascript 如何查找npm重复包?,javascript,node.js,npm,Javascript,Node.js,Npm,npm重复数据消除可以展平文件夹结构。然而,在这样做之前。我希望看到一份重复包的清单,以便我知道是否继续。有没有这样的特点?如果没有,是否有某种脚本可以帮助我实现这一点?尝试以下方法: npm ls --parseable | xargs -L1 sh -c 'basename $1' dummy | sort | uniq -c | grep -v "^ *1 " | sort -rn 这里的管道是: 以可解析格式列出包 将每个路径剥离到仅包含包名称 按字母顺序对包名称进行排序,以准备计算
npm重复数据消除
可以展平文件夹结构。然而,在这样做之前。我希望看到一份重复包的清单,以便我知道是否继续。有没有这样的特点?如果没有,是否有某种脚本可以帮助我实现这一点?尝试以下方法:
npm ls --parseable | xargs -L1 sh -c 'basename $1' dummy | sort | uniq -c | grep -v "^ *1 " | sort -rn
这里的管道是:
$ find-duplicate-dependencies
This package has the following duplicate dependencies:
regenerator-runtime :
[ { name: 'regenerator-runtime',
version: '0.11.1',
from: undefined,
path: 'project/react-select/emotion/babel-plugin-emotion/babel-core/babel-runtime' },
{ name: 'regenerator-runtime',
version: '0.12.1',
from: undefined,
path: 'project/recompose/@babel/runtime' } ]
赞成。让我来修正一下错误。没有明显的特征,除非它隐藏在某个地方。悲哀。然后希望有人有一个grep脚本或类似的东西@李允智 汗. 哈哈,是的。但不是特定于一个包。我想找出所有的dup软件包。这太棒了。你是说xargs-L1吗?“-l”返回一个错误。是的-L1更兼容,尽管我的测试系统(Ubuntu 12.04)也支持-l,但我已经编辑了答案。要包含版本,可以使用
npm ls--parseable--long | cut-d':'-f2 | sort | uniq-c
查看每个版本的包依赖多少次。可用于查找在何处同时使用软件包的v1.0.0和v2.0.0(因为不同的软件包取决于不同的版本)。此答案无法正确处理命名空间软件包,如@babel/core
。相反,我使用的是以下内容:npm ls | grep-v“dedupled”| grep-oe“\S*@”| sed'S/$/'| sort | uniq-c | sort-rn