Gulp挑衅Grunt中国哲学,背后的医学

by admin on 2019年2月11日
  1. 本次宣布会的万事收益将用以公益事业。

Gulp基于Node
JS的一个机制,叫做stream,有点类似C++中的stream。在Node中,文件访问、输入输出、HTTP连接,都是stream。Gulp的逐个插件从stream中读取输入,做一些处理,再出口到stream中。

日本首都梅赛德斯-雷克萨斯文化中央

gulp-usemin就根本得多,没有丝毫余下的事物:

  1. 此次门票的销售和配送仅限中国陆地地域

  2. 创办订单后请在 15 分钟内付款,否则订单将会失效;

  3. 门票售出一律不退,不可以挂失,请见谅;

  4. 每种订单限购 6 张门票;

  5. 不要从黄牛手中取票,以防买到假票

  6. 订单支付成功后通过顺丰快递发出门票;

gulp.task('usemin', function() {
  gulp.src('./*.html')
    .pipe(usemin({
      css: [minifyCss(), 'concat'],
      html: [minifyHtml({empty: true})],
      js: [uglify(), rev()]
    }))
    .pipe(gulp.dest('build/'));
});

时间:

做前端开发会用到一个职能叫usemin。我们HTML中会引用到无数css和js文件。公布时,这个文件要合并、压缩、混淆,最终生成一多个文本。为了让修改过的代码绕过浏览器的缓存机制,要依照文件内容hash出文件名。html文件里即将引用那个新的文书名。

 
 到了二零一六年的冬日,锤子科技(science and technology)才开今年先是场揭橥会。将于七月18日晌午在巴黎举办。12月9日开放网上领票,规则如下:

[按:网上介绍Gulp和Grunt安装使用的文章很多,甚少相比二者的思绪,连合法文档都语焉不详。我在此做一个粗陋的对立统一,希望能言简意赅,加深读者对那七个工具的知情。]

门票价格分为七档:

在前者和Node
JS的支出中,最普及的营造工具就是Grunt。它的作用说来简单,就是管理一连串的Task。半数以上的Task都以第三方的插件,安装好相应的NPM包,再loadNpmTasks就可以用了。

10 月 18 日 19:30 — 21:30(18:00 起首入场)

  • 布局和运作分离
    code over configuration,直接就在调用的地点安顿。

  • 各种插件做的事太多
    单一任务,依靠组合来发挥功效。就好像一条自动化生产线,上一道工序的面世间接付出下一步,功效不要太高。

  • 安排项过多
    既然我们都根据同一个共谋,很多陈设就不必要了。

地点:

做过些微正经开发的同学都晓得,打造工具必不可少。C时期的Make、Java的Ant、Ruby的Rake……没有这几个工具,两回遍地方选输入,准烦死你。

注意事项:

那我们再回头来看望前面Grunt的多少个难题,Gulp是怎么解决的:

售票时间从10 月 9 日 15:00起来。

别看那三个事儿,轻轻松松几百行出来了。每一个Task的配备,各有各的本分,还牵涉到插件间的相当。反正自身从seed库初阶做新品类的时候,基本不敢改原来的Gruntfile,很多用不上的效应也搁那儿。留意了一晃浩大开源项目标Gruntfile,也都臃肿杂乱,好不到何处去。

锤子科学和技术 2016 日本东京新品发表会将于 10 月 18 日晚 19:30
在巴黎梅赛德斯-克莱斯勒文化宗旨举办。9日午后15:00 门票在小麦 app 开售。

安顿呢?不需求了。是否天衣无缝,一鼓作气?

7.
当场禁止录音录制,可拍照分享但请你关闭闪光灯以防影响其余观众,谢谢您的匹配;

最后,举一个Grunt很别扭,Gulp却能优雅化解的例子。

100 元、150 元、200 元、300 元、400 元、500 元和 600 元。

目前,Gulp的社区还远不如Grunt成熟,有些效益的插件,Gulp或许就没有。那实则不算很大的逆风局,只要丰富好用,追上来很快。而且,写一个Gulp插件要比相应的Grunt插件短小得多!

  • 部署和运作分离
    程序员都知道,变量的扬言和利用挨在一齐,最便宜清楚和改动。但Gruntfile里,配置Task和调用它们的地方离得很远,极大地增加了心智负担。

  • 各类插件做的事太多
    每一个Task的结果必须写到磁盘文件,另一个Task再读,损害质量倒是小事,更麻烦的是让所有进程变复杂了。
    就如一个个小作坊,来料加工又重回给客户,那当中的联系费用、出错机会都大大伸张。

  • 安插项过多
    做事多了,配置项自然也多。至少输入和出口的地点得配啊。每一种插件的配备规则还大有不同。用逐个插件,都得去学学一番。

种种插件不是拿来单独使用的。相反,它小心于落成单一义务。只有把适龄的插件组合起来,才能不负众望具体的Task。引用法定的例证,看看一个典型的Task长什么样(略有删减):

Grunt的安顿文件Gruntfile,首要含有两局地:

usemin不需求有minifyCssminifyHtmluglifyrev那多少个插件的任何文化,只要把相应的内容从stream丢出去就好。在用这么些插件组装task时才须求关怀。

grunt.registerTask('build', [
  'useminPrepare', // 准备
  'concat',
  'cssmin',
  'uglify',
  'filerev',
  'usemin' // 执行
]);

只怕没多少个IT人不精晓Unix管道的定义。前一流的输出,直接变成后一流的输入。把大概的工具组合起来,优雅地缓解复杂的题材。听起来那么熟谙呢?是的,Gulp就把那种思考用在营造进度中。

grunt-usemin分为两步:

  • 先从html文件中募集需求处理的js和css,传给后续的一堆职务
    它本人并不知道在实际上中会调用哪些此外Task,只可以用部分hack,援助固定的多少个Task。而地点的种种Task,都有协调的配备项。要把这几个计划项都列出来,实在太长了。

  • 真正举办,更新html文件里的js和css引用。

Gulp应运而生。

  • 布置各种Task,包罗文件从哪个地方,到哪儿去,还有部分处理的选料

  • 协调写一些简短的Task,把第三方插件提供的Task组合起来

松开了看,Gulp像是一个要命靠近领域模型的DSL,而Grunt更像万能的XML。哪个好用,无需多说。在大家创设DSL时,也有参考意义。

正如一下grunt-usemingulp-usemin独家README的长度,就能来看不同。

Gruntfile维护起来那么困难,有多少个原因:

var paths = {
  scripts: ['client/js/**/*.coffee', '!client/external/**/*.coffee']
};

gulp.task('scripts', ['clean'], function() { // 可以依赖于其它task
  return gulp.src(paths.scripts) // 指定输入
      .pipe(coffee()) // 环节一
      .pipe(uglify()) // 环节二
      .pipe(concat('all.min.js')) // 环节三
      .pipe(gulp.dest('build/js')); // 指定输出
});

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图