3

作为我正在修补的 npm 包使用的构建脚本的一部分(-g 或必需),我需要将远程 github 存储库中目录的内容复制到该built目录中。

例如。ACE 编辑器版本 - 远程上的一堆文件。 https://github.com/ajaxorg/ace-builds/tree/master/src-min-noconflict

我不希望我的模块在本地拥有 ACE 文件,并且我可以要求和使用它们的构建没有 npm 包。它应该在构建时从最新的遥控器中提取它。

我宁愿不克隆 repo,但也许可以抓住 zipball 并从中做出一些事情。

有谁知道任何包或脚本已经可以在没有访问git外壳的情况下执行此操作?我对依赖 git 犹豫不决,因为您可以全局安装软件包并将其用作二进制文件...

我还可以做些什么?节点吉普?沃洛也许?组件.js?任何可以从远程 git 文件系统引用和部署的东西......

4

1 回答 1

1

这是一个选项吗?滚动你自己的可能很简单(我不知道存在任何东西)

警告:我从未尝试过这个


编辑

这是一些粗略的代码。文件夹级别的内容查询不会返回编码的内容,因此您需要迭代每个文件并发出另一个 API 请求(这可能会破坏未经身份验证的请求的速率限制)

var GitHubApi = require("github")
   ,fs = require("fs");

var github = new GitHubApi({
  version: "3.0.0"
 ,timeout: 5000
});

var msg = {
  user: "visionmedia"
 ,repo: "express"
 ,path: "lib/router"
};

github.repos.getContent(msg, function(err, res) {
  delete res.meta; //appended by wrapper, remove for iteration

  for(file in res) {
    msg.path = res[file].path;      

    github.repos.getContent(msg, function(err, res) {

      fs.writeFile(res.name
                  ,res.content
                  ,res.encoding
                  ,function(err){
                     console.log("Wrote %s to filesystem!", res.name)
                   });    
    }); 
  };
});
于 2013-02-07T21:37:11.423 回答