在节点 JS 中打包 .tar.gz 文件时忽略某些文件
Ignore certain files while packing a .tar.gz file in node JS
所以我已经从 "targz" 包中获得了一些代码,这些代码将所有文件打包到一个目录中。现在我已经看到您可以以某种方式忽略文件(而不是打包它们),我也想这样做。我只是想不通应该如何编写忽略部分。这是我的代码:
targz.compress({
src: "./" + this.sourcePath + "/",
dest: "./" + this.targetPath + "/" + "result.tar.gz",
tar: {
entries: this.fileArray,
ignore: function(name) {
return path.extname(name) === '.pdf'
}
},
gz: {
level: 6,
memLevel: 6,
}
}, function(err){
if(err) {
console.log(err);
reject(err);
} else {
resolve();
}
});
有人可以告诉我如何编写该部分才能正常工作吗?不胜感激
您获得了用作过滤器的 ignore
函数,例如,您在代码中过滤了所有具有 .pdf
扩展名的文件。
您可以重写此函数以过滤所有文件而不是您的特定文件:
ignore: function filter(name) {
const specificFilesToIgnore = ['some_specific.pdf', 'other_specific.pdf'];
return path.extname(file) === '.pdf' && !specificFilesToIgnore.includes(name);
}
我认为 entries
和 ignore
的组合没有像您预期的那样工作。如果您在 entries
中包含一个文件,它将被添加到您的存档中,无论 ignore
做什么。
我认为您不需要手动指定 entries
,因为您已经指定了 src
。所以删除 entries
应该可以解决问题。
所以我已经从 "targz" 包中获得了一些代码,这些代码将所有文件打包到一个目录中。现在我已经看到您可以以某种方式忽略文件(而不是打包它们),我也想这样做。我只是想不通应该如何编写忽略部分。这是我的代码:
targz.compress({
src: "./" + this.sourcePath + "/",
dest: "./" + this.targetPath + "/" + "result.tar.gz",
tar: {
entries: this.fileArray,
ignore: function(name) {
return path.extname(name) === '.pdf'
}
},
gz: {
level: 6,
memLevel: 6,
}
}, function(err){
if(err) {
console.log(err);
reject(err);
} else {
resolve();
}
});
有人可以告诉我如何编写该部分才能正常工作吗?不胜感激
您获得了用作过滤器的 ignore
函数,例如,您在代码中过滤了所有具有 .pdf
扩展名的文件。
您可以重写此函数以过滤所有文件而不是您的特定文件:
ignore: function filter(name) {
const specificFilesToIgnore = ['some_specific.pdf', 'other_specific.pdf'];
return path.extname(file) === '.pdf' && !specificFilesToIgnore.includes(name);
}
我认为 entries
和 ignore
的组合没有像您预期的那样工作。如果您在 entries
中包含一个文件,它将被添加到您的存档中,无论 ignore
做什么。
我认为您不需要手动指定 entries
,因为您已经指定了 src
。所以删除 entries
应该可以解决问题。