如何在我的package.json中添加非npm依赖项?

时间:2013-08-17 19:35:33

标签: git node.js github npm

我正在尝试将一个特定版本的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在数组([])中列出了依赖项,而不是对象。

2 个答案:

答案 0 :(得分:3)

---更新答案---

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

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

--- --- OLD

我找到了一种方法来做到这一点,但我仍然想回答,我的问题是为什么我以前的尝试失败了。

我开始工作的方式是用git替换我的用户名。所以:

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

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

答案 1 :(得分:1)

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

  • 创建一个可能只包含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 *)和可重复使用的软件包。