Хотя этот скрипт использует gulp 4.0.0-alpha.2, я подозреваю, что этот скрипт изначально был написан для 3.x.
У меня есть сценарий gulp, который я унаследовал и который выполняет следующую задачу:
pump([
gulp.src(['app\\images\\**\\*.*']),
gulp.dest('.dev\\images')
] , done);
(значения, переданные в .src
и .dest
, первоначально были получены из других источников, но, похоже, нет кода, который их изменяет)
Папка app\images
содержит подпапку icons
, которая содержит несколько файлов, результат сценария gulp:
- На
4.0.0-alpha.2
эти файлы помещаются в .dev\images\icons
- На
4.0.2
эти файлы загружаются в .dev\images\app\images\icons
Похоже, что теперь два полных пути объединяются, тогда как ранее только относительные пути из глобуса (то есть, когда app\images\**\*.*
найдено app\images\icons\icon1.png
вернули icons\icon1.png
).
Передача base
в опции при вызове src
, кажется, чтобы решить эту проблему:
pump([
gulp.src(['app\\images\\**\\*.*'], { base: 'app\\images\\' }),
gulp.dest('.dev\\images\\')
] , done);
Это не решает случаи, когда передается массив путей с разными базовыми путями, например:
['app\\styles\brand\**\*.*', 'app\\brands\icons\icons.data.svg.css']
Также представляется вероятным, что существует более общее решение, которое не требует от меня обновления каждого вызова src
, так что ...
Как я могу получить такое же поведение, используя Gulp 4.0, где при записи в место назначения используется только глобус или имя файла?
Минимальное воспроизведение gulpfile.js
:
'use strict';
const gulp = require('gulp');
exports.build = function()
{
return gulp.src(['app\\images\\**\\*.*'])
.pipe(gulp.dest('.dev\\images'));
}
И package.json
:
{
"name": "test-web",
"version": "1.0.0",
"description": "Test Project",
"main": "gulpfile.js",
"scripts": {
"build": "gulp build"
},
"author": "Me",
"license": "ISC",
"devDependencies": {
"gulp": "^4.0.2"
}
}
Есть файлы под app\images\android
и app\images\apple
(по 2 в каждом)
Результат с gulp@4.0.0-alpha.2
(ожидаемый / желаемый):
- .dev \ образы \ Android \ 1.png
- .dev \ образы \ Android \ 2.png
- .dev \ образы \ яблоко \ 1.png
- .dev \ образы \ яблоко \ 2.png
Результат с gulp@v4.0.2
(неожиданно):
- .dev \ изображения \ приложение \ изображения \ Android \ 1.png
- .dev \ изображения \ приложение \ изображения \ Android \ 2.png
- .dev \ изображения \ приложение \ изображения \ яблоко \ 1.png
- .dev \ изображения \ приложение \ изображения \ яблоко \ 2.png