在单个Git存储库中存储多个NPM库

时间:2018-12-05 09:18:00

标签: git github npm npm-install

我们可以像这样在Github上引用NPM部门:

"dependencies":{
   "foo":"github.com/org/root#commit"
}

但是我有一个包含多个NPM库的Git存储库,如下所示:

root/
  nodejs/
    foo/
      package.json
    bar/
      package.json

是否可以直接从此Github存储库中安装foo?像这样吗?

"dependencies":{
   "foo":"github.com/org/root/nodejs/foo#commit"
}

我尝试使用该网址进行安装,但没有成功,出现了此错误:

npm ERR! code ENOPACKAGEJSON
npm ERR! package.json Non-registry package missing package.json: https://raw.githubusercontent.com/org/root/master/nodejs/foo/package.json.
npm ERR! package.json npm can't find a package.json file in your current directory.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/oleg/.npm/_logs/2018-12-05T09_15_28_666Z-debug.log

我还尝试过像这样使用raw.githubusercontent.com:

"dependencies":{
   "foo":"raw.githubusercontent.com/org/root/nodejs/foo#commit"
}

我也遇到同样的错误。当然这一定有可能吗?

1 个答案:

答案 0 :(得分:0)

好的,所以一种解决方案是使用tarball。因此,您可以使用以下命令:

 npm i -S 'https://raw.githubusercontent.com/org/root/master/nodejs/foo/foo-0.0.1001.tgz'

它工作了..我在package.json中得到了它:

 "dependencies": {
    "foo": "https://raw.githubusercontent.com/org/root/master/nodejs/foo/foo-0.0.1001.tgz"
  }

基本上,您所需要做的就是使用指向tarball的网址进行npm install。