gulp-zip пропускает скрытые файлы
Я создал задачу Gulp, чтобы экспортировать мою рабочую копию Subversion и затем отправить ее в ZIP-архив. Скрытые (точечные) файлы, такие как .htaccess
присутствуют в экспортированном каталоге, но не в ZIP. Что мне не хватает?
Вот соответствующий код:
var codigoProjecto = "foo";
var dirSalida = "./Servidor/archivos/tmp";
gulp.task('zip', function() {
var temp = require('temp');
var path = require('path');
var child_process = require('child_process');
var zip = require('gulp-zip');
var revision, nombreBase, dirExport;
temp.track();
revision = child_process.execFileSync('svn', [
'info',
'--show-item=last-changed-revision',
'--no-newline'
]);
revision = parseInt(revision, 10);
nombreBase = codigoProjecto + " " + (new Date()).toISOString().slice(0,10) + ' r' + revision;
dirExport = path.join(temp.mkdirSync(codigoProjecto + "-"), nombreBase);
gutil.log('Exportando copia de trabajo...');
child_process.execFileSync('svn', [
'export',
'--quiet',
'-r', 'COMMITTED',
'.',
dirExport
]);
gutil.log('Empaquetando código...');
gulp.src([
path.normalize(dirExport + '/..') + '/**',
'!' + dirExport + '/doc{,/**}',
'!' + dirExport + '/node_modules{,/**}',
'!' + dirExport + '/psd{,/**}',
'!' + dirExport + '/scripts-utiles{,/**}',
'!' + dirExport + '/*.txt',
'!' + dirExport + '/.htaccess',
'!' + dirExport + '/gulpfile.js',
'!' + dirExport + '/package.json'
])
.pipe(zip(nombreBase + '.zip'))
.pipe(gulp.dest(dirSalida));
gutil.log("Salida: %s", gutil.colors.green.bold(path.resolve(dirSalida + '/' + nombreBase + '.zip')));
});
1 ответ
gulp.src() принимает второй аргумент, который используется для передачи параметров базовому компоненту, node-glob:
Тип:
Object
Опции для передачи на node-glob через glob-stream.
gulp поддерживает все параметры, поддерживаемые node-glob и glob-stream, кроме ignore, и добавляет следующие параметры.
Тут же был ответ:
Вы можете заставить glob рассматривать точки как обычные символы, установив
dot:true
в опциях.
Итак, вуаля
gulp.src([
path.normalize(dirExport + '/..') + '/**',
'!' + dirExport + '/doc{,/**}',
// ....
'!' + dirExport + '/package.json'
], {
dot: true
})
Теоретически, должна быть возможность составлять глобусы путей, которые явно включают точечные файлы, но синтаксис довольно нелогичен и: 1) я не мог найти, как это сделать глобально (то есть для всех подкаталогов) 2) я получил страшно неожиданное результаты, такие как .htaccess
файлы перемещаются из своего местоположения в базовый каталог