Игнорировать определенные файлы при упаковке файла .tar.gz в узле JS - PullRequest
0 голосов
/ 27 августа 2018

Итак, у меня уже есть код из пакета "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();
    }
});

Может кто-нибудь сказать мне, как мне написать этот раздел, чтобы он работал? Был бы очень признателен

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Я думаю, что комбинация entries и ignore не работает, как вы ожидаете.Если вы включите файл в entries, он будет добавлен в ваш архив, независимо от того, что делает ignore.

Я не думаю, что вам нужно указывать entries вручную, так как вы уже указалиsrc.Так что удаление entries должно помочь.

0 голосов
/ 27 августа 2018

Вы получили функцию ignore, которая действует как фильтр, например, из вашего кода вы фильтруете все файлы с расширением .pdf.

Вы можете переписать эту функцию, чтобы отфильтровать все файлы, а не ваши конкретные:

ignore: function filter(name) {
  const specificFilesToIgnore = ['some_specific.pdf', 'other_specific.pdf'];

  return path.extname(file) === '.pdf' && !specificFilesToIgnore.includes(name); 
}
...