【问题标题】:How to add a non-npm dependency to my package.json?如何向我的 package.json 添加非 npm 依赖项?
【发布时间】:2013-08-19 23:58:39
【问题描述】:

我正在尝试将 node-browser-builtins 的特定修订添加到我的 package.json 文件中,但它似乎不喜欢“commit-ish”修订哈希。查看npm's documentation,似乎URLs as Dependencies 下的大多数选项都需要用户名。我不想给我的用户名..因为这真的没有意义。这不应该与我的用户相关联才能工作。

我尝试将此 tarball 添加为依赖项 - 当我在命令行上使用它时(即 npm install)有效:

https://github.com/alexgorbatchev/node-browser-builtins/tarball/e5f81125f3c37532d7def0736265dbe87861e5e4

但它给了我这个错误:Error: 404 Not Found。看起来它在 URL 的末尾添加了一个@,这显然会使其失败..

我也试过the documentation中的选项1:

git://github.com/alexgorbatchev/node-browser-builtins.git#e5f81125f3c37532d7def0736265dbe87861e5e4

但它给了我错误:

npm ERR! Error: Command failed: fatal: ambiguous argument 'e5f81125f3c37532d7def0736265dbe87861e5e4@': unknown revision or path not in the working tree.

在这种情况下,它似乎也错误地添加了 @

已经这样做了:

git+https://myUserName@github.com/alexgorbatchev/node-browser-builtins.git#e5f81125f3c37532d7def0736265dbe87861e5e4

但同样,我不希望我的用户名与依赖项相关联。那你应该怎么做呢?

更多信息:我在 Windows 7 上,npm -v 1.2.24,我的 package.json 的依赖项列在一个数组 ([]) 中,而不是一个对象。

【问题讨论】:

    标签: git node.js github npm


    【解决方案1】:

    ---更新的答案---

    对于 git,我现在使用归档路径:

    https://github.com/fresheneesz/trimArguments/archive/e69ed3ebdfe6cf055916ba6e3a1e4b28f696da6f.tar.gz
    

    ---旧---

    我想出了一个方法来做到这一点,但我仍然想回答我关于为什么我之前的尝试失败的问题。

    我让它工作的方式是将我的用户名替换为git。所以:

    git+https://git@github.com/alexgorbatchev/node-browser-builtins.git#e5f81125f3c37532d7def0736265dbe87861e5e4

    如果我需要从 tarball 添加依赖项,我仍然不知道该怎么做。所以这不是一个完整的答案。

    【讨论】:

    • 只是为了澄清:基于BT的答案,完整的“东西”要添加到依赖项中的package.json || devDependencies 节点类似于:“my-module-name”:“git+http[s]://git@url/to/repository.git#branch”。这对我有用。
    【解决方案2】:

    开源包有一个简单的解决方案:

    • 制作一个可能只包含 package.json 文件的包
    • 设置preinstallinstall 和可选的test 挂钩example
    • 发布它并将其作为依赖项放入您的包中

    样本package.json

    {
     "name": "foo",
     "config": {
      "port": "8080"
     },
     "scripts": {
      "scripts": {
        "preinstall" : "wget yourtar && tar -zxvf && cd to/your/folder && ./configure",
        "install" : "make && make install",
        "test" : "make test"
      }
     }
    }
    

    请确保您通过following the guidelines 部署一个体面的、跨平台(或至少跨nix*)且可重用的包。

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 2016-08-02
      • 1970-01-01
      • 2020-07-21
      • 2023-01-28
      • 2013-11-03
      相关资源
      最近更新 更多