如何找到npm重复包?

时间:2016-02-02 03:05:34

标签: javascript node.js npm

npm dedupe可以展平文件夹结构。但是,在这之前。我希望看到一个重复包的列表,以便我知道是否继续前进。有这样的功能吗?如果没有,是否有某种脚本可以帮助我实现这一目标?

2 个答案:

答案 0 :(得分:15)

试试这个:

 npm ls --parseable | xargs -L1 sh -c 'basename $1' dummy | sort | uniq -c | grep -v "^ *1 " | sort -rn

这里的管道是:

  1. 以可分析格式列出包
  2. 将每个路径向下移至仅包名称
  3. 按字母顺序对包名称进行排序以准备计算唯一名称
  4. 对唯一包名称进行分组和计数
  5. 隐藏未重复的包(count = 1)
  6. 按出现次数递减排序

答案 1 :(得分:1)

尝试find-duplicate-dependencies。以及版本,它还向您显示了重复项的简化路径:

$ 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' } ]