当我在devDependencies中有一个项目时,为什么npm不能安装依赖项?

时间:2013-08-26 07:06:01

标签: node.js npm

当我删除devDependencies数组时,trimArguments安装正常。如果我给它一个dev依赖,它似乎完全忽略trimArguments。没有警告,只是无声的失败。我的package.json如下:

{"name":"asyncFuture",
 "version":"0.1.0",
 "main": "asyncFuture.js",
 "dependencies":[
    "git+https://git@github.com/fresheneesz/trimArguments.git#578afe0fa6ce96797c36e018bf5bae31b508a02f"
 ],
 "devDependencies": [
    "git+https://git@github.com/fresheneesz/deadunit.git#8395e438492267b94ef51ee4f94a6d6c8f1c15da"
 ],
 "repository": {
   "type": "git",
   "url": "git://github.com/fresheneesz/asyncFuture"
 }
}

这是一个NPM错误还是我误解了如何使用它? Windows 7 32位上的NPM版本1.3.8

更新

看起来npm忽略了除最后一个包之外的任何包,即使我将所有依赖项放在“dependencies”数组下(并摆脱devDependencies)。这必须是一个错误。我要报一张票。

2 个答案:

答案 0 :(得分:4)

使用URLs as dependencies时:

  

您可以指定[...]网址代替版本范围

注意dependencies是:

  

使用 包名称 的简单哈希指定为版本范围

即使使用(Git)URL,您仍需要指定包名称。

  "dependencies": {
    "trimArguments": "git+https://git@github.com/fresheneesz/trimArguments.git#578afe0fa6ce96797c36e018bf5bae31b508a02f"
  },
  "devDependencies": {
    "deadunit": "git+https://git@github.com/fresheneesz/deadunit.git#8395e438492267b94ef51ee4f94a6d6c8f1c15da"
  }

答案 1 :(得分:2)

dependenciesdevDependencies不是数组;他们是地图。

https://npmjs.org/doc/json.html#dependencies