gulp-zip 省略隐藏文件
gulp-zip omits hidden files
我创建了一个 Gulp 任务来导出我的 Subversion 工作副本,然后将其压缩。像 .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')));
});
gulp.src() accepts a second argument that's used to pass options to the underlying component, node-glob:
Type: Object
Options to pass to node-glob through glob-stream.
gulp supports all options supported by node-glob and glob-stream
except ignore and adds the following options.
就在那里was the answer:
You can make glob treat dots as normal characters by setting dot:true
in the options.
瞧瞧:
gulp.src([
path.normalize(dirExport + '/..') + '/**',
'!' + dirExport + '/doc{,/**}',
// ....
'!' + dirExport + '/package.json'
], {
dot: true
})
理论上,应该可以明确地组成包含点文件的路径 glob,但语法相当违反直觉,并且:1) 我找不到如何在全局范围内执行此操作(即对于所有子目录) 2) 我得到了可怕的意外结果,例如 .htaccess
文件从它们的位置移动到基目录
我创建了一个 Gulp 任务来导出我的 Subversion 工作副本,然后将其压缩。像 .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')));
});
gulp.src() accepts a second argument that's used to pass options to the underlying component, node-glob:
Type:
Object
Options to pass to node-glob through glob-stream.
gulp supports all options supported by node-glob and glob-stream except ignore and adds the following options.
就在那里was the answer:
You can make glob treat dots as normal characters by setting
dot:true
in the options.
瞧瞧:
gulp.src([
path.normalize(dirExport + '/..') + '/**',
'!' + dirExport + '/doc{,/**}',
// ....
'!' + dirExport + '/package.json'
], {
dot: true
})
理论上,应该可以明确地组成包含点文件的路径 glob,但语法相当违反直觉,并且:1) 我找不到如何在全局范围内执行此操作(即对于所有子目录) 2) 我得到了可怕的意外结果,例如 .htaccess
文件从它们的位置移动到基目录