Как исключить некоторые файлы при использовании shelljs для перемещения одной папки в другую - PullRequest
0 голосов
/ 18 февраля 2019

У меня ниже хранилища структуры:

src
  -common
        - asd.ts
        - filter.ts
  -checking
        -hi.json
  -third-party
        -src
            -common
                   -hello.ts
                   -two.ts  
                   -three.ts

здесь, я хочу переместить файлы из сторонних / src / common в src / common , номне нужно exlcude three.ts file.

У меня есть treid, как показано ниже, но он перемещает все файлы:

gulp.task('common-update', function (done) {
  shelljs.cp('-rf', './third-party/angularSB/src/app/common/*', './src/app/common/');
  done();
});

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Я пробовал, как это работает

gulp.task('common-update', function (done) {
  var check = glob.sync('./third-party/src/common/*');
  for (var i = 0; i < check.length - 1; i++) {
    if (check[i].indexOf('three.ts') === -1) {
      shelljs.cp('-rf', check[i], './src/common/');
    }
  }
  done();
});
0 голосов
/ 18 февраля 2019
Функция

shelljs cp не имеет возможности исключать файлы, когда вы просите ее скопировать на основе каталогов или подстановочных знаков.

Варианты, чтобы обойти это, включают:

  • Используйте cp, чтобы скопировать коллекцию в том виде, в каком вы были, а затем используйте rm, чтобы удалить определенные файлы, которые вам не нужны, в месте назначения.
  • Соберите список файлов и отфильтруйте ихв соответствии с вашими критериями, затем используйте cp для копирования каждого файла по отдельности.
  • Используйте другую библиотеку, например copyfiles, которая поддерживает какую-то опцию исключения.
...