我正在开发一个node.js express app以及几个私有node_modules。
我希望通过使用git标签将我的用户暴露给这些模块的不同版本。这是一个明智的想法吗?通过自动检测标记并在每个git标记引用中需要模块,是否有同样合理的方法来做到这一点?
也许像'git-helpers'这样的东西可能存在? (代码是coffeescript)
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")
答案 0 :(得分: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')