0

我正在开发一个 node.js express 应用程序以及几个私有 node_modules。

我想通过使用 git 标签让我的用户接触这些模块的不同版本。这是一个明智的想法吗,是否有一种同样明智的方法可以通过自动检测标签来做到这一点,并要求每个 git 标签引用中的模块?

也许可能存在“git-helpers”之类的东西?(代码是咖啡脚本)

git = require('git-helpers?').dir('./node_modules/module/')
tags = git.getGitTags()

modules = []

for tag in tags
  git.requireAtGitTag tag, (err, res) ->
    modules.push {version: tag, module: res}

然后模块变量看起来像这样

[
 { version: "0.8", module: required_module_here_at_tag},
 { version: "0.9", module: required_module_here_at_tag},
 { version: "1.0", module: required_module_here_at_tag}
]

编辑

我想出了一个使用名为Gift的 node.js git cli 包装器的想法。这是一种明智的做法吗?

gift = require("gift")
repo = gift("./node_modules/moduleA")

modules = []

repo.tags (err, tags) ->
  for tag in tags
    repo.checkout tag.name, (err, a) ->
      modules.push
        version: tag.name
        module: require("./node_modules/moduleA")
4

1 回答 1

1

归档此类内容的最佳方法是使用 npm:Git URLs as Dependencies

package.json您的应用程序文件夹中的示例:

{
  "name": "foobar",
  "version": "0.0.1",
  "dependencies": {
    "library": "git://example.com/user/project.git#tag_name"
  }
}

然后你可以:

var library = require('library')
于 2012-09-05T12:55:10.590 回答