npm8中文文档
当 npm 创建一个天真地嵌套每个依赖项的 node_modules
文件夹时,npm ls
命令的输出和行为非常有意义。在这种情况下,磁盘上包的逻辑依赖图和物理树将大致相同。
随着 npm v3 中依赖关系的自动安装时重复数据删除的出现,ls
输出被修改为将逻辑依赖关系图显示为树结构,因为这对大多数用户更有用。但是,如果不使用 npm ls -l
,大部分时间都无法显示软件包的实际安装位置!
随着在 npm v7 中自动安装 peerDependencies
的出现,这变得更加奇怪,因为 peerDependencies
在逻辑上是它们在依赖关系图中的依赖关系 "underneath",但物理上总是位于或高于它们在磁盘上的位置。
此外,自从 npm 获得 ls
命令(在 0.0.2 版中!)以来,依赖关系图通常会变得更大。因此,为了避免向终端转储过多的内容,npm ls
现在只显示顶级依赖项,除非提供了 --all
。
目前正在对该命令的用例、意图、行为和输出进行彻底的重新检查。预计至少在 npm v8 中默认的人类可读的 npm ls
输出会有重大变化。