【问题标题】:How does npm draw the dependency tree?npm 是如何绘制依赖树的?
【发布时间】:2013-03-04 14:22:55
【问题描述】:

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

npm 是如何做到这一点的?

【问题讨论】:

    标签: node.js console


    【解决方案1】:

    npm 使用 Unicode box drawing characters (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);
    

    输出

    beep
    ├── ity
    └─┬ boop
      ├─┬ o_O
      │ ├─┬ oh
      │ │ ├── hello
      │ │ └── puny
      │ └── human
      └── party
          time!
    

    【讨论】:

      【解决方案2】:

      要列出您可以使用 tree-cli 的文件夹和文件:

      https://www.npmjs.com/package/tree-cli

      只需安装:

      npm install -g tree-cli
      

      并在您的文件夹中使用:

      tree -L 2, -d
      

      【讨论】:

        【解决方案3】:

        您也可以使用console2,它的作用与archy 几乎相同,但提供了有用的附加功能,例如改进的堆栈跟踪、对象检查等:

        Feature screenshot

        完整披露:我是存储库的作者

        【讨论】:

          猜你喜欢
          • 2021-09-10
          • 1970-01-01
          • 1970-01-01
          • 2014-11-17
          • 2021-05-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-21
          相关资源
          最近更新 更多