我如何使用这个包裹?使用Jenkins时,从某个分支提取私有git-repository



我们有一个主项目,它加载子项目,然后用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@bitbucket.org/project-a.git#developgit+ssh://git@bitbucket.org/project-b.git#develop中提取。但是我找不到一种方法来告诉npm拉那些分支而不是master。

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

"devDependencies": {
    "project-a": "git+ssh://git@bitbucket.org/project-a.git#branchName" 
}

如果没有定义分支,它将默认为master。

因此,这提供了一个起点,您需要在运行时通过将分支名称附加到url来修改依赖项。为了存档,在运行npm install之前,你需要处理这个包。通过工具将关键字(例如#branchName)更改为您想要的内容。非常容易归档w/工具,如sed

然而,这将使你的git仓库"脏"(即未修改的更改)。另一种选择是编写一个cli工具来读取您的包。通过调用NPM install $reporul并在url repo后面加上你想要的分支,提取依赖项并手动安装它们。也许这个repo提供了一个工具,你可以使用,如果你不准备自己写一个:https://github.com/CrowdArchitects/node-rebranch-dependencies

最新更新