2017-03-05 15 views
0

也许有人比我有更多的Java脚本经验可以回答这个问题。到目前为止,我已经在'usemin'块中复制了&粘贴,如课程中所示。这里是代码:我怎样才能更有效地编码? - 一个吞咽任务

gulp.task('useminTrigger', ['deleteDistFolder'], function() { 
    gulp.start("usemin", "usemin-de"); 
}); 

gulp.task('usemin', ['styles', 'scripts'], function() { 
    return gulp.src("./app/index.html") 
    .pipe(usemin({ 
     css: [function() {return rev()}, function() {return cssnano()}], 
     js: [function() {return rev()}, function() {return uglify()}] 
    })) 
    .pipe(gulp.dest("./dist")); 
}); 

gulp.task('usemin-de', ['styles', 'scripts'], function() { 
    return gulp.src("./app/de/index.html") 
    .pipe(usemin({ 
     css: [function() {return rev()}, function() {return cssnano()}], 
     js: [function() {return rev()}, function() {return uglify()}] 
    })) 
    .pipe(gulp.dest("./dist/de")); 
}); 

该脚本的工作原理应该是这样,但也许有一个更容易或更优雅的方式来编码。

并以优雅的我的意思是:有没有办法来合并usemin - 阻塞与usemin德在一起吗?

帮助将非常感激。提前致谢!

+0

欢迎去吧!很难说出你的问题是什么。你想要一个简明的方式在'.app/index.html'(输出到'。/ dist')和'。/ app/de/index.html'(输出到'./dist/de')? – henry

+0

你好亨利,谢谢你的回复。我想这是一个菜鸟问题...... :)我想我实际上并不了解我写的所有代码,需要一些帮助,看看它应该如何正确告诉我想要的东西。我已经编辑了我的问题,因为你会看到更清楚。希望这会有所帮助。再次感谢。 – georg

回答

0

如果您使用您gulp.src(也就是说,如果你使用通配符来选择您想要的gulp.task处理的文件),源文件结构将被保留,所有的方式通过globgulp.dest

为了配合刚app/index.htmlapp/de/index.html你可以使用水珠'./app/{,de}/index.html'(它也将努力使用'./app/{,de/}index.html''./app/{.,de}/index.html')。

那么你的任务是

gulp.task('usemin', ['styles', 'scripts'], function() { 
    return gulp.src('./app/{,de}/index.html') 
    .pipe(usemin({ 
     css: [function() {return rev()}, function() {return cssnano()}], 
     js: [function() {return rev()}, function() {return uglify()}] 
    })) 
    .pipe(gulp.dest("./dist")); 
}); 

这一个任务将采取./app/index.html./app/de/index.html的源文件和将输出文件./dist/index.html./dist/de/index.html

请注意,使用glob是必要的 - 如果你只是做了gulp.src(['./app/index.html','./app/de/index.html'])相关的文件结构将不会被保留。 ./app/index.html的处理版本将被写入./dest/index.html,然后处理后的版本./app/de/index.html将被写入./dest/index.html(覆盖第一个输出文件)。

这是一个很好的glob primer,这里是一个tester learning tool

+0

谢谢henry,一个非常紧凑的解决方案。我已经阅读了一些关于这个话题(你的链接)。我只使用regexp来搜索文件 - 一种新的体验来使用它来为我编写代码。我会尝试。 – georg

0

中没有任何的Javascript咕嘟咕嘟让你从提取功能:

您的任务

gulp.task('useminTrigger', ['deleteDistFolder'], function() { 
    gulp.start("usemin", "usemin-de"); 
}); 

gulp.task('usemin', ['styles', 'scripts'], function() { 

    return createMinificationPipe("./app/index.html", "./dist"); 
}); 

gulp.task('usemin-de', ['styles', 'scripts'], function() { 
    return createMinificationPipe("./app/de/index.html", "./dist/de"); 
}); 

常用功能

function createMinificationPipe(src, dest){ 
    return gulp.src(src) 
     .pipe(usemin({ 
      css: [function() {return rev()}, function() {return cssnano()}], 
      js: [function() {return rev()}, function() {return uglify()}] 
     })) 
     .pipe(gulp.dest(dest)); 
} 
+0

感谢你的努力和这个伟大的分裂,这是我无法做到的令人兴奋的事情。我还没有尝试过,但我会更新,如果我有。 – georg