npm如何绘制依赖树?

jos*_*736 23 console node.js

npm在控制台中绘制一个包的依赖层次结构作为一个树,这是一项很好的工作:

$ npm ls
my-awesome-project@0.0.1
??? colors@0.6.0-1
??? express@2.5.11
? ??? connect@1.9.2
? ? ??? formidable@1.0.11
? ??? mime@1.2.4
? ??? mkdirp@0.3.0
? ??? qs@0.4.2
??? uglify-js@1.2.6
Run Code Online (Sandbox Code Playgroud)

npm如何做到这一点?

jos*_*736 31

npm使用Unicode 框绘制字符(U + 2500-2800)绘制树的漂亮线条.

要在您自己的应用程序中绘制类似的树,最好的路径可能是使用npm本身使用的相同模块 - archy.

var archy = require('archy');
var s = archy({
  label : 'beep',
  nodes : [
    'ity',
    {
      label : 'boop',
      nodes : [
        {
          label : 'o_O',
          nodes : [
            {
              label : 'oh',
              nodes : [ 'hello', 'puny' ]
            },
            'human'
          ]
        },
        'party\ntime!'
      ]
    }
  ]
});
console.log(s);
Run Code Online (Sandbox Code Playgroud)

输出

beep
??? ity
??? boop
  ??? o_O
  ? ??? oh
  ? ? ??? hello
  ? ? ??? puny
  ? ??? human
  ??? party
      time!
Run Code Online (Sandbox Code Playgroud)