繁体   English   中英

从github安装NPM依赖项

[英]Install NPM dependency from github

我在从github安装我自己的依赖项时遇到麻烦。

我的package.json看起来像这样:

{
  "name": "smartorm",
  "description": "Intelligent multi-database object relational mapping",
  "private": true,
  "main": "smart.js",
  "dependencies": {
    "mysql": "~2.5.0",
    "graphlib": "Queuecumber/GraphLibJS#v1.1",
    "promise": "~6.0.0",
    "xtend": "Raynos/xtend#v4.0.0"
  }
}

依赖项“ graphlib”导致错误。 这是我的存储库之一,因此我敢肯定我没有正确设置它。 任何帮助,将不胜感激。

运行npm install时出现以下错误

npm http 304 https://registry.npmjs.org/graphlib
npm ERR! Error: No compatible version found: graphlib@'Queuecumber/GraphLibJS#v1.1'
npm ERR! Valid install targets:
npm ERR! ["0.0.1","0.0.2","0.0.3","0.0.4","0.0.5","0.0.6","0.1.0","0.1.1","0.2.0","0.2.1","0.3.0","0.3.1","0.3.2","0.3.3","0.4.0","0.4.1","0.4.2","0.5.0","0.5.1","0.5.2","0.5.3","0.5.4","0.5.5","0.5.6","0.5.7","0.5.8","0.5.9","0.5.10","0.5.11","0.5.12","0.6.0","0.7.0","0.7.1","0.7.2","0.7.3","0.7.4","1.0.0-pre1","0.8.0"]
npm ERR!     at installTargetsError (/usr/share/npm/lib/cache.js:719:10)
npm ERR!     at /usr/share/npm/lib/cache.js:638:10
npm ERR!     at saved (/usr/share/npm/node_modules/npm-registry-client/lib/get.js:142:7)
npm ERR!     at /usr/lib/nodejs/graceful-fs/polyfills.js:133:7
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 3.13.0-36-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! cwd /media/Data/Code/Active/SmartORM
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.10
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /media/Data/Code/Active/SmartORM/npm-debug.log
npm ERR! not ok code 0

我有一个名为“ v1.1”的标签,该标签与github版本标题“ v1.1”相关联。 该存储库的package.json在版本号字段下列出了“ 1.1”。 我已经从该存储库中粘贴了package.json

{
  "name": "graphlib",
  "description": "Directed graphs in JavaScript using a sparse (adjacency list) representation",
  "private": true,
  "version": "1.1"
} 

GraphLibJS存储库中可以看出 ,该项目未设置为公共NPM包。 实际上,在package.json文件中,您可以看到private: true标志。 这使NPM忽略该程序包。

两种可能的解决方案:

  1. 下载该库的JS文件,并将其包含在您的项目中,就像处理其他非NPM包的JS文件一样。 它可能会受到您的版本控制,您将不得不手动更新它。
  2. 分叉GitHub项目并更新package.json文件,以便发布公共NPM存储库。 本文可以提供一些帮助。
    一旦您完成了分叉,将一个拉取请求提交给原始包也是一个好主意;)

编辑

我的回答是错误的,但是解决方案始终是相同的。 尽管私有标志使该软件包对NPM不可用不是真的,但是这里有某些因素会影响到此。

  1. 首先也是最重要的是,package.json文件包含错误的版本。 在Node.js中,版本必须采用xyz格式(例如1.1.0); “ 1.1”不是有效的版本号。
  2. 在NPM注册表上,已经有另一个所有者的名为“ graphlib”的软件包,这是引起问题的原因。
  3. 如果GitHub上的软件包正确,我认为它可能会起作用。 但是,鉴于该错误,NPM会尝试在其存储库中查找没有版本1.1的存储库。
  4. 如果您编辑package.json文件,则将行更改为:
    "graphlib": "git://github.com/Queuecumber/GraphLibJS.git",
    然后NPM实际上尝试在GitHub上获取该软件包,但是失败并出现以下错误:

    Alessandros-MacBook-Air:测试Alessandro $ npm安装npm错误! 错误:无效版本:“ 1.1” npm ERR! 在Object.module.exports.fixVersionField(/usr/local/lib/node_modules/npm/node_modules/read-package-json/node_modules/normalize-package-data/lib/fixer.js:183:13)

因此,我的建议仍然是通过分叉来更新该库的package.json文件。

暂无
暂无

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

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