В настоящее время я использую gulp для вызова сценария bash, который очищает мой dist/
каталог и перемещает соответствующие файлы в чистый каталог. Я бы хотел, чтобы это было сделано с помощью gulp, потому что я не уверен, что сценарий будет работать в файловой системе, отличной от * nix.
Пока я использую модуль gulp-clean для очистки dist/
каталога, но когда я пытаюсь переместить требуемые каталоги и их файлы в папку dist, каталоги пусты.
var gulp = require('gulp'),
clean = require('gulp-clean');
gulp.task('clean', function(){
return gulp.src(['dist/*'], {read:false})
.pipe(clean());
});
gulp.task('move',['clean'], function(){
gulp.src(['_locales', 'icons', 'src/page_action', 'manifest.json'])
.pipe(gulp.dest('dist'));
});
gulp.task('dist', ['move']);
вызов gulp dist
приводит к тому, что dist/
каталог заполняется правильными каталогами, но все они пусты
$ ls dist/*
dist/manifest.json
dist/_locales:
dist/icons:
dist/page_action:
Как мне скопировать каталоги и их содержимое в dist/
папку?
read
опции в src, установленной наfalse
(она установленаtrue
по умолчанию).Исходный вопрос нацелен только на каталоги (также известные как папки)
gulp.src
, то естьgulp.src(['_locales', ...
в этом примере_locales
это имя каталога .Принятый ответ использует
glob
шаблон в своемgulp.src
целевые файлы в любом месте в этих каталогах, то естьgulp.src(['./_locales/**/*.*', ...
, (обратите внимание на двойных звездочках , и filename.extension звездочек). Принятый ответ работает ...... но принятый ответ только подчеркивает
base
вариант :Я экспериментировал и обнаружил:
Строго говоря, нет необходимости использовать
base
опцию для достижения того, что запросил OP: «... и перемещает соответствующие файлы в чистый каталог».base
Вариант делает действительно сохранить папку + файл структуры (как описано в общепринятом ответа), ноbase
вариант не достаточно , чтобы переместить файлы в ОП спросил . Сохранение структуры папки + файла, вероятно, ожидает OP , поэтому принятый ответ хорош, но ...Просто чтобы подтвердить то , что делает перемещение файлов, это
glob
модель:Двойная звездочка (
.../**/...
) выполняет рекурсивный поиск по всем подпапкам, подпапкам, подпапкам и т. Д.Filename.extension asterisks (
.../*.*
) находит файлы со всеми именами и всеми расширениями . Так что я думаю, что эта часть заслуживает особого внимания!Принятый ответ меняет кое-что еще; он добавляет префикс
./
к каждому переданному аргументу путиgulp.src
. Я считаю это ненужным / избыточным; если нет./
(как в вопросе OP), пути разрешаются относительно текущего каталога, что приводит к тому же поведению . Но, возможно, это хорошая практика - четко указывать./
Сообщите мне, если я ошибаюсь ...
источник