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

5
我想在package.json文件中添加特定版本的node-browser-builtins,但是它好像不支持“commit-ish”版本哈希。查看npm文档,似乎URLs as Dependencies下的大多数选项都需要用户名。我不想提供我的用户名,因为这真的没有意义。这个功能不应该与我的用户相关联才能工作。
我尝试将这个tarball作为依赖项添加 - 当我在命令行中使用它时,它可以工作(即npm install)。

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

但是它给了我这个错误:Error: 404 Not Found。看起来它在URL末尾添加了一个@,这显然会导致失败。
我还尝试过文档中的选项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个回答

3

---更新的答案---

对于Git来说,现在我使用存档路径进行操作:

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

---NEW---

我已经想出了一种方法,但是我仍然想知道我之前尝试失败的原因。

我的解决方案是将我的用户名替换为git。因此:

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

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


仅供澄清:根据 B T 的答案,在 dependencies || devDependencies 节点中添加到 package.json 中的完整“内容”应该类似于:“my-module-name”: “git+http[s]://git@url/to/repository.git#branch”。这对我有效。 - Andrea Grimandi

1

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

  • 制作一个包,可能只包含一个package.json文件
  • 设置preinstallinstall和可选的test钩子示例
  • 发布它并将其作为您的包的依赖项

示例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"
  }
 }
}

请确保按照指南部署一个良好的、跨平台(或至少跨*nix)和可重用的软件包。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接