2016-03-02 80 views
1

我創建了一個Gulp任務來導出Subversion的工作副本,然後將其壓縮。隱藏(點)文件如.htaccess存在於導出的目錄中,但不在ZIP中。我錯過了什麼?gulp-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'))); 
}); 
+0

嘗試在路徑中添加'dirExport +'/.*'''路徑 – harishr

+0

剛剛嘗試過我所有的組合可以想到的。恐怕我只能設法將頂級隱藏文件複製到錯誤的位置!無論如何感謝提示,我的問題必須與globstarred道路的輝煌。 –

+0

因爲你可以做'dirExport +'./**/.*'',它也會添加內部隱藏文件 – harishr

回答

3

gulp.src()接受這些會用來將選項傳遞到下面的部件的second argumentnode-glob

類型:Object

選項傳遞給節點-glob通過glob-stream。

gulp支持node-glob和glob-stream支持的所有選項 除了忽略並添加以下選項。

就在那裏was the answer

您可以在選項設置dot:true 使水珠治療點作爲普通字符。

所以瞧:

gulp.src([ 
    path.normalize(dirExport + '/..') + '/**', 
    '!' + dirExport + '/doc{,/**}', 
    // .... 
    '!' + dirExport + '/package.json' 
], { 
    dot: true 
}) 

從理論上講,它應該是可以構成路徑的水珠,其中包括明確點文件,但語法是相當的反直觀:1)我找不到2)我得到了可怕的意外結果,如.htaccess文件從其位置移動到基本目錄