繁体   English   中英

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

[英]How to add a non-npm dependency to my package.json?

我正在尝试将node-browser-builtins的特定版本添加到我的package.json文件中,但它似乎不喜欢“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在数组( [] )中列出了依赖项,而不是对象。

---更新答案---

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

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

- -旧 - -

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

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

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

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

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

  • 创建一个可能只包含package.json文件的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"
  }
 }
}

请确保您部署一个体面的,跨平台的(或至少跨尼克斯*)和可重复使用的包装用下面的准则

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM