npm通过安装GitHub上包

最近使用了第三方的node包,需要对包的功能进行扩展,也就是需要修改它的源代码,带来的问题是,不好对这个包进行管理了,如果是多个人共同开发这个项目,就需要对这个包进行管理。

还在npm非常完善可以通过Git的形式指定包源。

我将修改后的包,放到了GitHub上,然后修改package.json为以下格式:

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "terminal-menu-program": "git://github.com/stanzhai/terminal-menu-program.git"
  }
}

注意terminal-menu-program这个依赖,用的GitHub的地址,如果是公司内部的项目,还可以指定到公司的git地址上,特别方便。

注意这个地址必须是git协议的,如果是https协议的,使用npm install安装的时候会提示:

npm WARN package.json deployer@1.0.0 No description  
npm WARN package.json deployer@1.0.0 No repository field.  
npm WARN package.json deployer@1.0.0 No README data  
npm ERR! not a package /var/folders/t6/k8lc3c_56gj6xnb44tfzm61c0000gn/T/npm-29410-q4woIms2/github.com/stanzhai/terminal-menu-program.git  
npm ERR! Error: ENOENT, open '/var/folders/t6/k8lc3c_56gj6xnb44tfzm61c0000gn/T/npm-29410-q4woIms2/github.com/stanzhai/terminal-menu-program.git-unpack/package.json'  
npm ERR! If you need help, you may report this *entire* log,  
npm ERR! including the npm and node versions, at:  
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Darwin 14.1.0  
npm ERR! command "node" "/usr/local/bin/npm" "install"  
npm ERR! cwd /Users/stan/Projects/deployer  
npm ERR! node -v v0.10.33  
npm ERR! npm -v 1.4.28  
npm ERR! path /var/folders/t6/k8lc3c_56gj6xnb44tfzm61c0000gn/T/npm-29410-q4woIms2/github.com/stanzhai/terminal-menu-program.git-unpack/package.json  
npm ERR! code ENOENT  
npm ERR! errno 34  
npm ERR!  
npm ERR! Additional logging details can be found in:  
npm ERR!     /Users/stan/Projects/deployer/npm-debug.log  
npm ERR! not ok code 0