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

我试图添加一个特定版本的node-browser-builtins到我的package.json文件,但它似乎不喜欢“commit-ish”修订哈希。 看看npm的文档 ,看起来像URLs as Dependencies下的大部分选项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有一个数组( [] )中列出的依赖关系,而不是一个对象。

—更新答案—

对于混帐,我现在使用存档path:

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

– -旧 – –

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

我得到它的工作方式是用gitreplace我的用户名。 所以:

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

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

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

  • 制作一个包,可能只包含一个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" } } } 

请确保按照指导原则部署一个体面的,跨平台的(或者至less是交叉nix *)和可重用的包。