Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用Jenkins时,如何使用package.json从某个分支提取私有git存储库?_Git_Jenkins_Npm - Fatal编程技术网

在使用Jenkins时,如何使用package.json从某个分支提取私有git存储库?

在使用Jenkins时,如何使用package.json从某个分支提取私有git存储库?,git,jenkins,npm,Git,Jenkins,Npm,我们有一个主项目,它加载子项目,然后用npm将它们绑定到一个文件中。以下是package.json: { "name": "my-project", "version": "1.0.0", "description": "", "main": "index.js", "dependencies": { "angular": "^1.5.7" }, "devDependencies": { "project-a": "git+ssh://git@bitb

我们有一个主项目,它加载子项目,然后用npm将它们绑定到一个文件中。以下是package.json:

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "angular": "^1.5.7"
  },
  "devDependencies": {
    "project-a": "git+ssh://git@bitbucket.org/project-a.git",
    "project-b": "git+ssh://git@bitbucket.org/project-b.git"
  },
  "author": "",
  "license": "ISC"
}
我们希望在多个服务器上构建项目,例如master和develop,这些是分支机构的名称。现在,如果我们构建开发分支,npm应该从
git中提取+ssh://git@org/project-a.git#开发
git+ssh://git@org/project-b.git#develope
。但是我找不到一个方法告诉npm去拉那些树枝而不是主人


感谢您的任何帮助。

首先,npm将根据您的指示执行任何分支。格式如下:

"devDependencies": {
    "project-a": "git+ssh://git@bitbucket.org/project-a.git#branchName" 
}
如果没有定义分支,它将默认为master

因此,这提供了一个起点,您需要在运行时通过将分支名称附加到url来修改依赖关系。在运行npm安装之前,您可以通过一个工具来处理package.json,该工具可以将关键字(例如#branchName)更改为您想要的内容。使用sed等工具非常容易归档


然而,这将使您的git回购“脏”(如未修改的更改)。另一种方法是编写一个cli工具,该工具将读取您的package.json,提取依赖项,并通过调用npm install$reporul并用所需的分支修复url repo来手动安装它们。。也许这个回购协议提供了一个工具,如果你自己没有能力写一个,你可以使用它:

首先,npm会拉你让它拉的任何分支。格式如下:

"devDependencies": {
    "project-a": "git+ssh://git@bitbucket.org/project-a.git#branchName" 
}
如果没有定义分支,它将默认为master

因此,这提供了一个起点,您需要在运行时通过将分支名称附加到url来修改依赖关系。在运行npm安装之前,您可以通过一个工具来处理package.json,该工具可以将关键字(例如#branchName)更改为您想要的内容。使用sed等工具非常容易归档


然而,这将使您的git回购“脏”(如未修改的更改)。另一种方法是编写一个cli工具,该工具将读取您的package.json,提取依赖项,并通过调用npm install$reporul并用所需的分支修复url repo来手动安装它们。。也许这份回购协议提供了一个工具,如果你自己没有能力写一份,你可以使用它:

非常感谢你的回答,我想我现在知道该做什么了。非常感谢你的回答,我想我现在知道该做什么了。