Node.js Gulp src / dest 4.0 поведение против Gulp 3.6 - PullRequest
2 голосов
/ 19 марта 2019

Краткое изложение моего вопроса:

Gulp 3.6.0 dest () обрабатывает глобальную базу так же, как 4.0.0?

function other() {
    return src([
        path.join("src/**/*"),
        path.join("!src/**/*.{html,css,js,scss}")
    ])
    .pipe(fileFilter)
    .pipe(dest(dist));
}

Запуск Gulp 3.6.0 с кодом выше дал такой результат:

enter image description here

Обратите внимание, что указанные папки и файлы, добавленные в папку dist с помощью этого кода, были:

-app
-assets
-config
favicon.ico

Теперь выполнение того же кода в 4.0.0 приводит к:

enter image description here

Я знаю, что glob-base по умолчанию добавляется к месту назначения при его передаче по каналу, однако отличается ли это поведение от того, как gulp обрабатывал зеркальное отображение источника в структуру файлового каталога dest в 3.6.0? Пример подсказывает иначе.

Если бы кто-нибудь мог предоставить мне решение для создания такой же структуры папок, как в моем 3.6.0, это было бы здорово. Я пробовал gulp-flatten и gulp-переименовывать, но ничего не дает желаемого результата, удаляя только основание шаров.

1 Ответ

0 голосов
/ 22 марта 2019

Так что я до сих пор не уверен, каково было значение обновления до Gulp 4.0 с точки зрения того, как обрабатываются glob-parent / glob-base, однако мне удалось получить то, что мне было нужно, используя опцию base.

Эта опция фактически аннулировала дополнительную src жестко заданную ссылку на путь перед / ** / в пути.

function other() {

var fileFilter = plugins.filter(function(file) {
    return file.stat.isFile();
});

var appFilter = plugins.filter(function(file) {
    return file.path.indexOf("\\src\\app\\") === -1;
});

return src(path.join(conf.paths.src, "/**/*"), { base: conf.paths.src })
    .pipe(appFilter)
    .pipe(fileFilter)
    .pipe(dest(conf.paths.dist));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...