【问题标题】:Why isn't npm installing dependencies when I have an item inside devDependencies?当我在 devDependencies 中有一个项目时,为什么 npm 不安装依赖项?
【发布时间】:2013-08-26 16:26:10
【问题描述】:

当我删除 devDependencies 数组时,trimArguments 安装得很好。如果我给它一个开发依赖项,它似乎完全忽略了 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 忽略了除最后一个之外的任何包,即使我将所有依赖项放在“依赖项”数组下(并摆脱 devDependencies)。这必须是一个错误。我要开罚单了。

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    使用URLs as dependencies时:

    您可以指定一个 [...] URL 来代替 版本范围

    注意到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"
      }
    

    【讨论】:

    • 如果我需要指定一个包名,那么我希望它不能正确安装它们中的任何一个。它正在正确安装其中一个,而不是另一个。但我会尝试将此作为解决方法。谢谢。
    • 这似乎有效:) - 我仍然认为它是 npm 中的一个错误(我为此写了一张票)
    【解决方案2】:

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

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

    【讨论】:

    • 除了我一直将它们用作其他每个项目的数组,它们工作正常......
    • 请显示一个已发布的成功执行此操作的 npm 包。作为 npm 维护者之一,这似乎难以置信。
    • npm install github.com/fresheneesz/examplePackage/tarball/… - 你可以使用这个包或者运行examplePackage/test/test.js
    • 我猜它本身并没有发布..但它确实可以正常工作
    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 2021-08-28
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    相关资源
    最近更新 更多