使用gulp构建nodejs,你只需要记住5个函数

前端搭建Nodejs+npm+gulp开发环境 一 安装NodeJSNodeJS官网地址:https://nodejs.org/zh-cn/ 首先到NodeJS的官网下载安装文件,如果是windows的机子,会得到msi的安装文件,双击之后一路next就可以了。 安装完成后,在命令行执行node -v(显示NodeJS版本)和npm -v(显示npm版本)查看NodeJS是否安装成功。 NPM是随同NodeJS一起安装的包管理工具,能解决N 阅读详情

gulp

gulp是一个nodejs的streaming构建工具,所谓的streaming大致意思就是把构建流程想成一个个链接的管道(pipe)。


为什么要这样做呢?

要解释原因,就不得不提到unix。unix本身只提供了数量相对较少的命令,但是你可以命令的组合完成很强大的功能。命令和命令之间的衔接通常就用的是pipe。

类似,使用gulp,你仅仅只需要记住5个命令。这5个命令就是gulp提供给我们的一套streaming构建的架子,也就相当于提供了unix中的pipe功能。至于说pipe中每个命令的功能,则可以使用现有的plugin或者自定义完成。


安装gulp

如果npm版本比较老,可能会遇到安装gulp失败的情况

更新/安装npm:

curl https://www.npmjs.org/install.sh | sudo sh


安装npm:

npm install -g gulp

npm install--save-dev gulp

安装完成以后,可以用gulp -v试一试是否正确

[20:29:16] CLI version 3.8.5
[20:29:16] Local version 3.8.5


一个最简单的gulp脚本

gulpfile.js

---

var gulp = require('gulp')

gulp.task('default', function() {
   console.log('this is the default task')
})

运行:gulp

[20:29:02] Starting 'default'...
this is the default task
[20:29:02] Finished 'default' after 74 μs


gulp和大多数的构建工具类似,都是由task组成的,上面的例子中,default是task名字,也表示是默认的task。也可以用gulp default运行,执行的是同一task。


一个第二简单的gulp脚本(src, pipe)

安装jasmine插件

npm install --save-dev gulp-jasmine


gulpfile.js

---

var gulp = require('gulp');
var jasmine = require('gulp-jasmine');

gulp.task('default', function () {
    return gulp.src('spec/google.spec.js')
        .pipe(jasmine());
});


安装superagent方便测试

spec/google.spec.js

---

var superagent = require('superagent')

describe ('google', function() {
   it("should return the google homepage", function(done) {
      superagent.get('http://www.google.com/')
         .end(function(e, res) {
            expect(e).toBe(null)
            expect(res.status).toBe(200)
            done();
         })
   })
})


运行测试

[21:01:07] Starting 'default'...
[21:01:07] Finished 'default' after 79 ms
.
Finished in 0.41 seconds
1 test, 2 assertions, 0 failures


gulp有比较多的插件,比如上面用到的gulp-jasmine就是其中的一个。

 gulp.src('spec/google.spec.js')
        .pipe(jasmine());


有意思的东西来了,什么是src和pipe?


我们先看一个unix命令:

 cat gulpfile.js | wc -l

这是两个独立的命令,cat gulpfile.js用来获取gulpfile.js的文件内容,wc -l用来统计文件中的行数,他们中间用“|”相连。把cat gulpfile.js的输出作为wc -l的输入。这是再常见不过的unix命令


gulp中吸取了这样的想法,上面gulp命令可以想作:

 'spec/google.spec.js' | jasmine()

这样应该就非常好理解了吧。


你仅仅需要知道的5个gulp命令

gulp.task(name, fn)这个你应经见过了

gulp.run(tasks...)尽可能多的并行运行多个task

gulp.watch(glob, fn)当glob内容发生改变时,执行fn

gulp.src(glob)返回一个可读的stream

gulp.dest(glob)返回一个可写的stream


知道这些以后,你再看https://github.com/gulpjs/gulp中的例子,就显得容易了很多


参考资料:

http://www.sitepoint.com/introduction-gulp-js/

http://slides.com/contra/gulp

https://github.com/substack/stream-handbook

自学PCB思路 | PCB设计零基础入门-小白适用(附详细入门经验分享) 本人大一在实践课上就听说PCB,被虎的一楞一楞的,不过现在回看,发现其实并没有相信的那么难!想着把自己这一路摸索的学习路线分享一下,当时我是一边摸索一边上手,一把鼻涕一把泪的过来的。如果你想搞硬件或者需要搞硬件,下面是我的入门学习过程,希望可以帮到你。目录前言选择一款设计软件好的入门课程掌握抄板元件采购焊板子烙铁头热风枪自己半设计明确设计需求全设计最后我并非什么大佬,也没法自己去教大家如何画板。 阅读详情

相关推荐

【Unity】YooAsset与HybridCLR:高效资源管理与代码热更的黄金组合

本文深入探讨了Unity开发中YooAsset与HybridCLR的组合应用,为需要长期运营的项目提供了完整的资源与代码热更新解决方案。YooAsset作为高效的资源管理框架,简化了AssetBundle的打包、加载与热更流程;而HybridCLR则攻克了IL2CPP模式下C#代码无法热更的难题。两者结合,实现了从资源到逻辑的平滑在线更新,极大提升了开发迭代与线上维护的效率。

weixin_29006701的博客 279

gulp入门3:pipe

在Gulp中,pipe方法是一个核心概念,它允许你将数据从一个任务传递到另一个任务,类似于Unix管道的工作方式。以下是关于Gulp中pipe。

542

斑马打印机状态监控进阶:不用SDK也能获取打印状态的3种野路子

本文介绍了三种不依赖官方SDK的斑马打印机状态监控方法,包括SGD命令、TCP端口嗅探和共享打印机日志分析。这些方案适用于老旧系统或网络受限环境,帮助运维人员实时掌握打印状态,提升设备管理效率。特别适合工业自动化和物流仓储场景中的应急处理。

weixin_42628688的博客 427

gulp的使用(一)

npm安装gulp npm install gulp --save-dev 常用方法 gulp.task(任务名,回调函数)--------定义任务 gulp.src()--------找到需要执行的任务的文件 gulp.dest()------输出文件的目的地,如果某文件夹不存在,将会自动创建它 gulp.pipe()------管道流,接通源头文件与目标文件的输出 gulp.watch...

awsl_666的博客 559

FPGA之全数字锁相环(DPLL)

1. 数字锁相环的基本原理和组成 1.1 锁相环(PLL)的简介 锁相环最开始并不是用在数字电路中,而是模拟短路中。对于模拟电路中的锁相环,大家可以参考这篇文章稍微看一下,数字和模拟只是实现的方法不同,但是原理、步骤还是共同的。关于模拟PLL。可以参考一片文章: http://www.sohu.com/a/190569594_464086 首先在学习数字锁相环之前,我们应该先了解什么是锁相环?锁相...

DBLLLLLLLL的博客 5万+

二、租用AutoDL服务器与连接教程

点击右上角控制台,选择【租用新的实例】;,我这里使用的是xshell和xftp工具(自行下载)。打开本地目录和服务器目录,直接拖动文件。

zzf021122的博客 1326

gulp pipe

首先,gulp的源码里没有任何一部分是定义pipe的。 gulp的pipe方法是来自nodejs stream API的。 gulp本身是由一系列vinyl模块组织起来的。 pipe方法到底是什么呢? pipe跟他字面意思一样只是一个管道 例如我有一堆文件 var s = gulp.src(["fileA","fileB","fileC"]) src方法实际上是'vinyl-fs'模...

MrFano的博客 5410

深入解析进化算法中的选择与多样性

在计算科学的世界里,最优雅的解决方案往往源于最古老的智慧——大自然。进化算法(Evolutionary Algorithms, EAs)正是这样一种受达尔文自然选择学说启发的强大工具。它们通过模拟“适者生存”的过程,在庞大的可能性海洋中搜寻最优解。。:指的是深入挖掘和优化已知的优质解。这就像在一片已知的沃土上精耕细作,力求获得最高产量。强大的选择压力会促进这一过程。:指的是在整个搜索空间中寻找全新的、可能更优的解。这好比派遣探险队去发现新大陆,充满了未知与机遇。保持种群的多样性是探索的关键。

weixin_62533513的博客 714

gulp的使用

Gulp是基于node的一个自动化构建工具,开发者可以使用它构建自动化工作流程,页自动刷新,CSS预处理,代码检测,图片压缩等功能,只需要简单的命令行就可以全部完成。使用它,可以简化工作,让你把重点放在功能的开发上,同时减少人为失误,提高开发的效率和质量。node中的第三方包,通过npm下载gulp 是node中的第三方模块gulp.task(任务名,回调函数)gulp.src(文件路径) 设置文件的路径gulp.pipe() 管道方法 将文件流输出到指定的方法中。

m0_55836496的博客 1056

STM32 bootloader程序跳转到APP卡死在B_ENDP_ALIGN,原因:有未处理的中断。解决方法:重启系统

Bootloader和App中都用到了串口,定时器等,所以从Bootloader跳转App后未卡死。 后来写的另一个App里没有用到这几个外设,然后就是无限的卡死。 现在Bootloader中跳转App之前将已打开的外设关掉,再跳转至App就不再出现卡死。  if(((*(vu32*)(APPLICATION_ADDRESS+4))&0xFF000000)==0x08000000) {

jingzhixingyun的博客 7919

025、空间降噪与时域降噪:噪声抑制与细节保留的平衡艺术

《降噪技术的平衡艺术:空间与时域降噪的协同优化》 本文深入探讨了图像处理中空间降噪与时域降噪的技术原理与工程实践。空间降噪通过像素级处理提升单帧质量,而时域降噪则利用帧间信息增强稳定性。文章揭示了两种方法在实际应用中的矛盾点:过度降噪会导致细节损失,影响后续算法性能。作者结合车载环视系统等实战案例,详细分享了参数调优经验,包括运动自适应策略、边缘保持技巧和嵌入式平台优化方案。特别强调降噪的最终目标应服务于下游算法需求,而非单纯追求图像美观。文章为工程人员提供了从理论到实践的完整指导,展现了降噪技术在效果与性

sundong_81的博客 186

快速理解掌握gulp用法

行文步骤: 1、怎么安装 2、怎么使用一、怎么安装 首先你得在自己的电脑中安装nodejs,应为gulp的运行是基于nodejs环境的。 安装完成后,直接npm install gulp -g.(如果不能理解这句代码请百度吧)安装完成后你可以直接在cmd窗口调用gulp功能。 二、怎么使用 gulp的作用? 我们构建一个项目,名称叫app,里面有css文件夹、js文件夹、image文件

简单是书的博客 3774

一种抑制undershoot/overshoot锐化算法介绍

一、USM 当增强图像的边缘、细节信息等高频信息时,图像的锐化视觉效果会得到较大提升。提高图像锐化的一种经典算法为非锐化掩码(UNsharp Masking)技术。该技术首先通过高通滤波并与缩放系数相乘,其结果再与原始图像相加,即可对高频信息进行增强。其主要的原理如下图所示: 其中,对图像进行高通滤波的另一种等效方法为:原始图像减去原始图像的低通滤波图像,其结果被称之为“掩码”。因此,上述的USM方法可以表示为: 原始图像减去原始图像低通滤波之后的图像得到掩码M。 2.掩...

大熊 4242

分享HTML5自动化构建工具gulp使用方法步骤

gulp是是前端开发对代码进行构建的工具,是基于 Nodejs 的自动任务运行器,他能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在开发中使用能有效提高工作效率,使用: 既是基于Nodejs的任务运行器,自然就需要先安装Nodejs...

QF _WEB 273

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

nodejs+gulp+webpack基础知识

知识点涉及怎么结合gulp、webpack、Babel等并结合NodeJS+NPM开发前端。 第一章:开脑与热身 第二章:gulp和webpack混合学习 第三章:前端利器Babel+ES2015体验学习篇 第四章:webpack+gulp+sass学习篇 第五章:webpack+git+Jenkins学习篇 为什么需要前端工程化? 前端工程化的意义在于让前端这个行业由野蛮时代进化为...

Enweitech Software Works 3382

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

nodejs-gulp的使用

1.安装nodejs 从官网下载,根据系统选择适合的安装包 安装完成后,在系统菜单里,找到 Node.js command prompt 输入node -v查看当前nodejs版本信息 拓展: npm NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,npm下载源是国外网站,会慢。可以用淘宝的cnpm,同样的东西 允许用户从NPM服务器下载别人编写的第三方包到本地使用 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用 允许用户将自己编写的包或命令行程序上

sam80000的博客 653

使用gulp来构建项目

gulp是一个前端构建的工具,用来快速进行一些操作。比如开发一个项目的时候,设计师给你的照片一般都是一个高清的图,但是这些资源往往是很大的。那你要压缩图片的话是不是要找一个网站去将图片一个一个的进行压缩呢。显然,这样的操作是很麻烦的。那么我们就可以利用gulp来进行这一项的操作。此外,还可以利用一些gulp的插件来进行别的操作,比如压缩js、css 、html代码等,还可以用来混淆js代码,合并js代码等。还可以自动加载、把目录下的所有文件进行重命名等等的操作。下面我们来进入gulp的学习 学...

梁婉玲krysliang的博客 957

HTML5技术分享之自动化构建工具gulp使用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33862514的博客 80

基于Nodejs的自动化工具Gulp

gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,不仅可以很愉快的编写代码,而且大大提高我们的工作效率。

Dimikart的博客 1881

前段构建工具gulp原理及使用教程

1 gulp是什么 前端构建工具,gulp是基于Nodejs,自动化地完成 javascript、sass、less、html/image、css 等文件的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后刷新浏览器。借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具。 2环境搭建 ...

技术驿站 347

nodejs 启动报错:cannot find module;gulp安装及使用流程

nodejs 启动报错:cannot find module 刚刚出现了这个错误。纠结了实在太久 直接把缺失的模块安装 但是还是提示同意的错误。 一气之下我把整个gulp重新安装了一遍。现在正常运行 下面整理一下 gulp 安装步骤~ 安装nodejs 去 https://nodejs.org/en/下载安装文件安装即可。 安装完成后,在终端输入node -v回车打印出nodejs的版本号,说...

lsh159745的博客 5396

前端构建工具gulp的使用

1、gulp是一个前端构建工具包,可以帮助我们解决在开发过程中遇到耗时的任务,它有易于使用、构建快速等特点。 2、环境配置: (1)安装nodejs: gulp插件都是基于nodejs来运行的, 下载网址https://nodejs.org/, 选装cnpm:由于 npm 安装速度慢,从而使用了淘宝的镜像及其命令 cnpm,具体介绍参照:官方网址:http://npm.taobao.org; 安装...

Melody° 227

nodejs之gulp自动化构建工具

Gulp是一个构建系统,它能通过自动执行常见任务,比如编译预处理CSS,压缩JavaScript和刷新浏览器,来改进网站开发的过程。 Gulp是基于Node.js构建的,因此Gulp源文件和你用来定义任务的Gulp文件都被写进了JavaScript(或者CoffeeScript)里。 Gulp是一个可以在GitHub上找到的开源项目。 Gulp本身虽然不能完成很多任务,但它有大量插件可用,开发

qq_30486009的博客 841
上一篇: 用expressjs写RESTful API
下一篇: nodejs中使用monk访问mongodb
kiwi小白
博客等级 码龄14年 153粉丝 154原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值