从特定目录中的文件创buildtar文件

我需要使用nodejs来创build一个不包含在父目录中的tar文件。

例如,这里是文件系统:

 /tmp/mydir /tmp/mydir/Dockerfile /tmp/mydir/anotherfile 

我想要做的是相当于这个:

 cd /tmp/mydir tar -cvf archive.tar * 

所以,当我提取archive.tarDockerfile将最终在我执行命令的同一个目录中。

我已经尝试tar.gz和其他一些,但所有的例子是压缩整个目录,而不仅仅是文件。

我正在这样做,所以我可以利用Docker REST API发送构build。

构造函数的第二个参数作为属性传递给tar模块。

 var TarGz = require('tar.gz'); var compressor = new TarGz({}, {fromBase: true}); 

这将使用创build没有顶级目录的存档。

编辑:这是在node-tar.gz未logging,但拉请求已经合并: https : //github.com/alanhoff/node-tar.gz#tar-选项

tar -C /tmp/mydir -cvf archive.tar . 应该这样做。

使用tar.gz模块。 这是一个示例代码

 var targz = require('tar.gz'); var compress = new targz().compress('/path/to/compress', '/path/to/store.tar.gz', function(err){ if(err) console.log(err); console.log('The compression has ended!'); }); 

有关更多选项,请访问文档页面 。