我安装了 express、mongodb 和 mongoose。这是我的结果npm ls
:
/home/merc/Bookings
├─┬ connect-mongo@0.1.9
│ └─┬ mongodb@0.9.9-8
│ └── bson@0.0.4
├─┬ express@3.0.0rc2
│ ├── commander@0.6.1
│ ├─┬ connect@2.4.2
│ │ ├── bytes@0.1.0
│ │ ├── formidable@1.0.11
│ │ ├── pause@0.0.1
│ │ └── qs@0.4.2
│ ├── cookie@0.0.4
│ ├── crc@0.2.0
│ ├── debug@0.7.0
│ ├── fresh@0.1.0
│ ├── methods@0.0.1
│ ├── mkdirp@0.3.3
│ ├── range-parser@0.0.4
│ └─┬ send@0.0.3
│ └── mime@1.2.6
├─┬ jade@0.27.2
│ ├── commander@0.6.1
│ └── mkdirp@0.3.0
├─┬ mongodb@1.1.2
│ └── bson@0.1.1
└─┬ mongoose@3.0.0
├── hooks@0.2.1
├─┬ mongodb@1.1.2
│ └── bson@0.1.1
└── ms@0.1.0
您可以清楚地看到,出于某种原因,Jade 位于根目录中(我假设这发生在我运行“express”时。但话又说回来,“mongodb”在不同版本(0.9.9 和 1.1.2)中可用,所以是bson(0.1.1 和令人担忧的 0.0.4)。
因此我的问题是:如何使用 npm 管理依赖项?是否每个软件包都可以简单地安装他们喜欢的任何版本,无论他们选择哪个版本?
我想问题是:这种重复是“正常的”,可以说是“设计的”吗?
默克。