Сжать каталог с Node.js но исключите некоторые файлы

#node.js #zip #compression #fs #node-archiver

Вопрос:

Я пытаюсь сжать каталог с помощью архиватора. Я хочу рекурсивно исключить определенные каталоги или файлы, такие как node_modules .

Например, если у меня такая структура каталогов:

 folder-to-compress
| node_modules
| sub-folder
  | ignored-file-name
  | included-file-name
| ignored-file-name
 

Приведенный ниже скрипт исключает только с корневого уровня. Таким ignored-file-name образом, in root не будет включен в zip, но sub-folder/ignored-file-name будет включен. Мне интересно, есть ли способ рекурсивного исключения?

 const fs = require('fs');
const archiver = require('archiver');

const output = fs.createWriteStream(__dirname);
const archive = archiver('zip', { zlib: { level: 9 } });

archive.pipe(output);

archive.glob('*/**', {
   cwd: __dirname,
   ignore: ['mode_modules', 'ignored-file-name', '*.zip']
});

archive.finalize();