5

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

我尝试将此压缩包添加为依赖项 - 当我在命令行上使用它时(即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 在数组 ( []) 中列出了依赖项,而不是对象。

4

2 回答 2

3

---更新的答案---

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

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

- -老的 - -

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

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

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

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

于 2013-08-17T19:38:56.793 回答
1

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

  • 制作一个可能只包含一个package.json文件的包
  • 设置preinstall,install和可选的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*)和可重用的包。

于 2013-12-29T09:34:59.953 回答