iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >node.js中grunt和gulp的区别详解
  • 292
分享到

node.js中grunt和gulp的区别详解

详解区别js 2022-06-04 17:06:51 292人浏览 泡泡鱼
摘要

node.js中grunt和gulp的区别详解 自nodejs登上前端舞台,自动化构建变得越来越流行。目前最流行的当属grunt和gulp,这两个光看名字挺像,功能也差不多,不过gulp能在grunt这位大

node.js中grunt和gulp的区别详解

nodejs登上前端舞台,自动化构建变得越来越流行。目前最流行的当属grunt和gulp,这两个光看名字挺像,功能也差不多,不过gulp能在grunt这位大哥如日中天的境况下开辟出自己的一片天地,有着她独到的优点。

易用 Gulp相比Grunt更简洁,而且遵循代码优于配置策略,维护Gulp更像是写代码。 高效 Gulp相比Grunt更有设计感,核心设计基于Unix流的概念,通过管道连接,不需要写中间文件。 高质量 Gulp的每个插件只完成一个功能,这也是Unix的设计原则之一,各个功能通过流进行整合并完成复杂的任务。例如:Grunt的imagemin插件不仅压缩图片,同时还包括缓存功能。他表示,在Gulp中,缓存是另一个插件,可以被别的插件使用,这样就促进了插件的可重用性。目前官方列出的有673个插件。 易学 Gulp的核心api只有5个,掌握了5个API就学会了Gulp,之后便可以通过管道流组合自己想要的任务。 使用Grunt的I/O过程中会产生一些中间态的临时文件,一些任务生成临时文件,其它任务可能会基于临时文件再做处理并生成最终的构建后文件。而使用Gulp的优势就是利用流的方式进行文件的处理,通过管道将多个任务和操作连接起来,因此只有一次I/O的过程,流程更清晰,更纯粹。 代码优于配置 维护Gulp更像是写代码,而且Gulp遵循Commonjs规范,因此跟写node程序没有差别。

一个简单的Gulpfile.js配置格式


  var gulp = require('gulp');
  var jshint = require('gulp-jshint');
  var concat = require('gulp-concat');
  var rename = require('gulp-rename');
  var uglify = require('gulp-uglify');

  // Lint JS
  gulp.task('lint', function() {
  return gulp.src('src/*.js')
    .pipe(jshint())
    .pipe(jshint.reporter('default'));
  });

  // Concat & Minify JS
  gulp.task('minify', function(){
    return gulp.src('src/*.js')
    .pipe(concat('all.js'))
    .pipe(gulp.dest('dist'))
    .pipe(rename('all.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest('dist'));
  });

  // Watch Our Files
  gulp.task('watch', function() {
    gulp.watch('src/*.js', ['lint', 'minify']);
  });

  // Default
  gulp.task('default', ['lint', 'minify', 'watch']);

以上就是node.js中grunt和gulp的区别的讲解,如果大家有疑问请留言或者到本站社区进行讨论交流,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

--结束END--

本文标题: node.js中grunt和gulp的区别详解

本文链接: https://www.lsjlt.com/news/12489.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js中Process.nextTick()和Process.setImmediate()的区别
    一、Webstrom使用node.jsIDE的问题 在区别这两个函数之前来说一下Webstrom使用node.jsIDE的问题,在配置Node.js的IDE了,但setImmedia...
    99+
    2024-04-02
  • 详解JS中? ?和?. 和||的区别
    目录1、 与 || 的区别2、 和 . 的区别1、 与 || 的区别 1)相同点: 和 || 的用法相同,都是前后是值,中间用符号连接,根据前面的值来判断最终是返回前面的值还是后面...
    99+
    2024-04-02
  • Servlet中/和/*的区别详解
    目录本文提纲版本约定✍正文点拨“市面上”的错误答案1、/用于Servlet,demo:这个urlPatterns是合法的。只不过它属于精确匹配,也就是说别看它中间有*,仍...
    99+
    2024-04-02
  • mysql中#{}和${}的区别详解
    #{}会将传入的数据当成一个字符串,会对自动传入的数据加一个双引号 order by #{userId}   这里假如userId = 111,那么解析成sql时...
    99+
    2024-04-02
  • mybatis中#{}和${}的区别详解
    目录一、MyBatis中${}和#{}的区别1.1 ${}和#{}演示1.2 SQL注入问题1.3 ${}和#{}的区别1.4 #{}底层是如何防止SQL注入的?1.4.1 网上的答...
    99+
    2024-04-02
  • Node.js中path.resolve与path.join的区别与作用详解
    目录前言:关于 path.resolve() 的使用总结:关于 path.join() 的使用path.resolve与path.join的区别前言: 讲解之前,大致的讲解一下所涉及...
    99+
    2023-03-19
    nodejs path.resolve node.js path.join
  • JavaScript/TypeScript中==和===的区别详解
    在JS/TS项目里,除了能看到==操作符来判断两个变量是否相等外,我们还会看到===操作符,这两者有什么区别吗? 先上结论, 对于String, number这些基础类型,==操作符...
    99+
    2024-04-02
  • 详解Java中==和equals()的区别
    目录1. ==1.1 基本数据类型1.2 引用数据类型1.3 小结2. equals3. 总结1. == == 是运算符,用来判断两个值是否相等,==可以使用在基本数据类型变量和引用...
    99+
    2024-04-02
  • Java中equals和==的区别详解
    目录1.java中的数据类型,可分为两类: 2.再稍微改动一下程序,会有更奇怪的发现: 3. 字符串缓冲池 4.再次更改程序: 总结1.java中的数据类型,可分为两类: 1.基本...
    99+
    2024-04-02
  • Pandas中的unique()和nunique()区别详解
    Pandas中Series和DataFrame的两种数据类型中都有nunique()和unique()方法。这两个方法作用很简单,都是求Series或Pandas中的不同值。而uni...
    99+
    2024-04-02
  • 详解Python中Pytest和Unittest的区别
    目录1.安装和使用2.编写测试用例3.自动发现测试用例4.插件和扩展5.运行速度6.报告7.社区支持昨天在群里面,有两个新手的小伙伴提问:Pytest 和 Unittest是Pyth...
    99+
    2023-03-13
    Python Pytest Unittest区别 Python Pytest Unittest
  • 详解Mybatis中javaType和ofType的区别
    目录一. 背景描述二. 情景再现1. 实体类2.BookMapper.xml映射文件3. 核心配置4. 测试代码5. 修改实体类6. 添加映射文件BookTypeMapper.xml...
    99+
    2023-05-20
    Mybatis javaType和ofType
  • 详解vue中$router和$route的区别
    我们在 vue 项目中一般都会用到路由,而 vue-router 是 vue.js 官方的路由管理器。 this.$route:当前激活的路由的信息对象。每个对象都是局部的,可以获取...
    99+
    2024-04-02
  • Java中Exception和Error的区别详解
    世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确的处理好意外情况,才能保证程序的可靠性。 java语...
    99+
    2024-04-02
  • 详解Django中CSRF和CORS的区别
    目录一、CSRF:保护机制二、CORS:跨域访问一、CSRF:保护机制 Django预防CSRF攻击的方法是在用户提交的表单中加入一个csrftoken的隐含值,这个值和服务器中保存...
    99+
    2024-04-02
  • java中StringStringBuffer和StringBuilder的区别详解
    目录从声明定义上来谈从结构上来谈从线程安全来谈总结从声明定义上来谈 只有String 可以 直接声明创建 而 StringBuffer 与 StringBuilder 必须去new...
    99+
    2024-04-02
  • 详解C++中typedef 和 #define 的区别
    1、执行上不同 关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能。 #define 则是宏定义,发生在预处理阶段,也就是编译之前,它只...
    99+
    2024-04-02
  • C++和C中const的区别详解
    目录C中的constconst修饰局部变量const修饰全局变量const修饰的全局变量有外部链接属性const与指针C++中的constconst修饰普通全局变量const修饰普通...
    99+
    2024-04-02
  • JavaScript中require和import的区别详解
    ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用requ...
    99+
    2024-04-02
  • Vue 中的 computed 和 watch 的区别详解
    目录computed注意应用场景watch总结computed computed 看上去是方法,但是实际上是计算属性,它会根据你所依赖的数据动态显示新的计算结果。计算结果会被缓存,c...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作