简单的方法来列出节点模块我有npm链接?

我正在寻找一个命令,将列出全球模块的名称,我有npm link d本地副本,也列出本地path。

事实上, 所有全球安装模块的列表将会更好, npm link 标记不知何故。

你有没有尝试只列出node_modules目录的内容(例如ls -l node_modules | grep ^l )? 他们是正常的符号链接。

如果你真的需要find所有的符号链接,你可以尝试像find / -type d -name "node_modules" 2>/dev/null | xargs -I{} find {} -type l -maxdepth 1 | xargs ls -l find / -type d -name "node_modules" 2>/dev/null | xargs -I{} find {} -type l -maxdepth 1 | xargs ls -l find / -type d -name "node_modules" 2>/dev/null | xargs -I{} find {} -type l -maxdepth 1 | xargs ls -l

如果你想从npm list输出一个漂亮的输出,你可能会喜欢:

 \ls -F node_modules | sed -n 's/@$//p' | xargs npm ls -g --depth 0 

这在我目前的操场上给出了dir:

 +-- color@0.11.1 +-- grunt@0.4.5 +-- http-server@0.8.5 +-- jsdom@8.0.2 +-- jsonfile@2.2.3 +-- underscore@1.8.3 +-- xmlserializer@0.3.3 `-- zombie@4.2.1 

它做了一些假设,但它应该在大多数情况下工作,或容易适应下面的解释。

  • 使用\ls绕过您的ls命令可能的别名
  • -F选项为链接添加一个“@”指示符
  • sed命令select这些链接并删除指标
  • xargs部分将先前的输出作为parameter passing给npm ...
  • npm被调用
    • listls列出具有版本的模块
      • ll代替以获得关于每个列出的模块的细节。
    • -g为全局模块和
    • --depth 0浅层列表的--depth 0 (可选)
    • --long false (默认与'列表')。

问题:由于某种原因, npm目前为我提供了额外的条目(无色)。 他们将是那些我有“ npm unlink ”编辑。

对于当前npmpath中“ 所有全局安装的模块的列表 ”,你只需要做

 npm list -g 

为了进一步的需要,你可能想看看

 npm help folders 

除非你扫描整个文件系统,否则你不能跟踪符号链接(然后这不是一个NPM特定的问题)。

为了通过名称快速查找文件和目录,我使用locate ,通常每天一次重build索引。

 locate '*/node_modules' 

并从那里开始工作(您可能想要使用--regexp选项来优化search。

parsingls一个更好的select是使用像这样的find

 find . -type l 

您可以使用-maxdepth 1来仅处理第一个目录级别:

 find . -maxdepth 1 -type l 

您可以使用-ls获取更多信息。

例如,为了findnpm链接的节点模块:

 find node_modules -maxdepth 1 -type l -ls 

这里有一篇文章为什么parsingls不是最好的主意

我看到自己和其他人也有同样的问题。 我为自己写了一个名为link-status的小CLI来显示这个信息,也可能帮助别人! 看看这里!

我做了一个Node.js模块,它使用fs来检查由npm link或其他方式创build的符号npm link

https://www.npmjs.com/package/symlinked

 var symlinked = require("symlinked") console.log(symlinked.names()) 

我发现这个问题后,我也写了我自己的工具,在这里是为了完整: npm-list-linked 。

它会recursion地跟随层次结构中的所有链接包,在我的工作中,我们有时可能会有npm link 2-3级的深度,这样就可以看到哪些是本地的,哪些不是,避免了意外。

 $ npm-list-linked Linked packages in /home/user/projects/some-project/ @prefix/package 0.2.7 other-package 0.1.2