gulp src不排除文件夹中的所有文件

时间:2016-12-14 09:24:43

标签: gulp

我创建了2个任务,'compileApp''compileAppDeploy'。基本上,它们类似于 compileAppDeploy 缩小要部署的代码。

独立地,两个任务都运行良好,但如果 compileAppDeploy 先运行,那么 compileApp dist 文件夹

继承缩小代码

不成功我尝试了几种路径组合。虽然如果我设置在路径下面,那么 javaScriptMinified.js 将被删除,但 htmlAngularMinified.js 将被合并。

'!./app/dist/*.js

目录结构

   +root
      +app
         +dist    -> Exclude
           -javaScriptMinified.js  -> after run compileAppDeploy task
           -htmlAngularMinified.js  -> after run compileAppDeploy task
         +filters -> Include
         +l10n    -> Exclude
         +components -> Include 
         -app.js     -> Include
      +css
      -gulpfile.js
      -index.html
      -package.json

compileApp

gulp.task('compileApp', function() {

return gulp.src(['./app/app.js','./app/**/*.js','!./app/dist/'])
    .pipe(plumber({errorHandler : onError}))
    .pipe(concat('LoginPortal.min.js'))
    .pipe(gulp.dest('./app/' ));

});

compileAppDeploy

gulp.task('compileAppDeploy', function( version ) {

return gulp.src(['./app/app.js','./app/**/*.js','!./app/dist/'])
    .pipe(plumber({errorHandler : onError}))
    .pipe(stripDebug())
    .pipe(uglify({
        warnings : false
    }))
    .pipe(replace('app/l10n' ,'' + version + '/l10n'))
    .pipe(concat('LoginPortal' + version + '.min.js'))
    .pipe(gulp.dest('./app/dist/' + version + '/' ));
});

1 个答案:

答案 0 :(得分:0)

  

不成功我尝试了几种路径组合。虽然如果我设置在路径下面,那么 javaScriptMinified.js 将被删除,但 htmlAngularMinified.js 将被合并。

'!./app/dist/*.js

您只能直接在./app/dist/中排除文件,而不是在子目录中。这可能意味着htmlAngularMinified.js位于子目录中,而javaScriptMinified.js则不是。

您需要从所有目录级别排除.js个文件:!./app/dist/**/*.js

如果您刚刚使用了正确的目录结构,那么您不必担心任何问题。将您的分发目录放在源目录中只是一个糟糕的主意。而不是这种结构:

+root
   +app
      +dist

使用以下结构:

+root
   +app
   +dist

然后在compileAppDeploy中,你可以这样做:

.pipe(gulp.dest('./dist/' + version + '/' ));

并且您不必担心排除dist目录,因为它不再低于./app