前端构建工具-gulp !

简介: 今天是元宵节,公司也很有人情味的让大家提前下班了,很happy。这个月的学习安排已经计划好了,每天过的很充实,博客的话今天记录下自己学习 gulp的心得,月底再写一篇 require.js 或者 sea.js 的博客。废话不多说,go!

今天是元宵节,公司也很有人情味的让大家提前下班了,很happy。这个月的学习安排已经计划好了,每天过的很充实,博客的话今天记录下自己学习 gulp的心得,月底再写一篇 require.js 或者 sea.js 的博客。废话不多说,go!

一,为啥要用构建工具

项目中的js和css属于静态文件,客户端第一次访问的时候会缓存这些文件,那就意味着当我们需要改js跟css的时候,即使我们将文件中的代码改了重新发布,那么客户端也是看不到,客户端发现缓存中有同样路径的文件,直接读取。

之前做的项目中,项目上线后客户打开一看:“那谁,这里那里需要改动一下”。我就操起键盘改css样式,改js业务逻辑,然后一发布,屁颠屁颠的跟客户讲:“大佬,已经改好了,您老再看!”

可当客户再次打开页面的时候,问题还是那个问题。奇了怪了,我本地是好的啊。思前想后才想起浏览器缓存这么一说,让客户清除浏览器缓存就好了,但不是很多客户都喜欢去清除浏览器缓存,他们只会觉得这样好麻烦。

那么怎么办?我想很多程序员都知道加一个版本号就可以了,这样浏览器就会认为这是一款全新的游戏。。。。额,错了,是一个全新的文件,比如原来是 http://www.xxxx.com/index.js 你现在只需要把地址改为 http://www.xxxx.com/index.js?v=1.0 即可

但是如果这个动作是手动的,那么很大可能我们将会忘掉去手动敲这个版本号 。那么这就是为什么我们需要前端构建工具。前端构建工具有很多,grunt、gulp、webpack等。今天我们只聊gulp。

二、gulp的引入

打开命令行工具,进入项目所在的根目录下,输入 npm init -y 命令,创建package.json文件。

生成的package.json文件,项目名称,版本号,描述信息均为空,我们用ide打开后将其填上。

package.json文件管理我们项目中的包依赖关系,想了解更多package.json信息,请自行百度。

通过 npm 安装 gulp 包:

安装完gulp以及其他要用到的插件后,packjson.json文件变更如下:

开始使用gulp:

gulp构建工具的配置信息默认是写在gulpfile.js 文件中,在项目的根目录下创建 gulpfile.js,通过require引入gulp以及其他插件

 

二、gulp的4个核心API

gulp 自身能做的事情不多,主要是通过各种插件来满足我们的需求,gulp本身提供了4个非常简洁的API(很重要,划重点), 掌握这4个API你就基本掌握了gulp的全部。

1.gulp.task

定义:gulp.task(name [, deps, fn])

我们给gulp注册一个任务task,参数name是该任务的名称,deps是可选项,就是这个任务可能会依赖其他的任务tasks, fn是任务要执行的函数,也就是该任务要干啥。                                                                                                                                                 

例子中先执行完 task2,task3 ,最后再执行task1任务。task2与task3是并行执行的,不是顺序执行。   

2.gulp.src

定义:gulp.src(globs[, options])

与globs 匹配的文件,可以是string或者一个数组。其参数就是一个我们要处理的文件是啥!

我们这里要处理的文件是 ./src/scripts/ 这个路径下的js文件。

3.gulp.dest

定义:gulp.dest( path [, options])

参数path表示文件处理完后要存放的路径,option参数一般不用,无需了解。

4.gulp.watch

定义:gulp.watch(glob [, opts], tasks) or gulp.watch(glob [, opts, cb])

gulp.watch就是监视某路径下文件的变化,然后运行指定的任务Tasks或者函数。

这里gulp监视 ./src/scripts/ 路径下的所有js文件是否发生变化,若有则运行 scripts 这一task任务。

三、gulp具体使用

上面讲过,我们想用gulp做些什么都是通过声明一个task任务来实现。现在我们就通过gulp来做件事情吧:将src/scripts/路径下的a.js与b.js 合并压缩后 生成 ab.js 并存放在 build/scripts/ 路径下。

a.js:

b.js:

 第一步,在我们的gulpfile.js文件中引入 合并、压缩js所需要的插件(插件这块请自行百度)

第二步,创建一个任务task来帮助我们完成合并压缩js这件事

创建完任务后在命令行输入 gulp scripts 指令运行该任务。

运行结果如下:

所以gulp的工作流程就是: 找到文件( gulp.src ) -> 对文件进行操作( 使用各类插件 ) -> 输出文件 ( gulp.dest );

按着这个套路,合并压缩css就简单啦,代码如下:

最后在命令行输入指令gulp styles即可。

我们在实际开发中不需要通过命令行去手动运行一个个的task任务,gulp为我们提供了默认的default任务task,我们可以在该任务中执行我们项目构建中的每一个task,且只需要在命令行中输入gulp 指令即可.

我们还可以利用前文讲到的watch api对我们的css,js文件进行监听,若发生修改则自动运行相关的task任务去进行合并压缩等相应操作,如下:

 

前端构建工具gulp入门到此结束,拜~

原文发布时间为:2018年03月02日
原文作者:小草先森 

本文来源:开源中国 如需转载请联系原作者


目录
相关文章
|
2月前
|
缓存 移动开发 Rust
前端构建工具 Mako 开源了
Hi,我是 sorrycc,Mako 的主要负责人之一,也是 Umi、Dva、Father 等库的作者。 很开心,Mako 终于开源了! Github 地址:https://github.com/umijs/mako/ 今天和大家正式介绍下他。
118 3
|
1月前
|
前端开发 JavaScript API
探索React Hooks:前端开发的革命性工具
【10月更文挑战第5天】探索React Hooks:前端开发的革命性工具
|
6天前
|
监控 前端开发 JavaScript
前端稳定性工具-Sentry
【11月更文挑战第9天】Sentry 是一个开源的错误和性能监控平台,支持多种编程语言和框架。它能够捕获前端应用中的各种错误和性能问题,提供详细的错误信息和用户行为关联,帮助开发团队快速定位和解决问题,优化应用性能。但需注意隐私保护、数据准确性和成本控制。
|
13天前
|
前端开发 JavaScript API
前端开发的秘密武器:这些工具让你轻松应对各种复杂动画效果!
【10月更文挑战第30天】前端开发中,动画效果为页面增添了无限生机。CSS3的@keyframes规则和JavaScript动画库如GSAP、Anime.js等,使开发者能轻松实现从简单到复杂的动画效果。掌握动画原理和设计原则,结合工具和库,可以创造出既美观又实用的动画,提升用户体验。
35 4
|
11天前
|
Web App开发 前端开发 JavaScript
前端开发的秘密武器:这些工具让你轻松应对各种复杂布局!
【10月更文挑战第31天】前端开发充满挑战,尤其是在处理复杂布局时。本文介绍了几种关键工具和技术,如HTML和CSS基础、Firefox开发者工具、Visual Studio Code以及Vue、React和Angular等前端框架,帮助开发者高效应对复杂布局,提升代码质量和用户体验。
24 2
|
16天前
|
缓存 监控 前端开发
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第26天】前端工程化是现代Web开发的重要趋势,通过将前端代码视为工程来管理,提高了开发效率和质量。本文详细对比了Webpack和Gulp两大主流构建工具的选择与配置优化,并提供了具体示例代码。Webpack擅长模块化打包和资源管理,而Gulp则在任务编写和自动化构建方面更具灵活性。两者各有优势,需根据项目需求进行选择和优化。
47 7
|
15天前
|
缓存 前端开发 JavaScript
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第27天】在现代前端开发中,构建工具的选择对项目的效率和可维护性至关重要。本文比较了Webpack和Gulp两个流行的构建工具,介绍了它们的特点和适用场景,并提供了配置优化的最佳实践。Webpack适合大型模块化项目,Gulp则适用于快速自动化构建流程。通过合理的配置优化,可以显著提升构建效率和性能。
29 2
|
29天前
|
自然语言处理 前端开发 JavaScript
推荐 10 个前端开发会用到的工具网站
本文介绍了多个前端开发工具,包括 Web Design Museum、Landing Page、Google Fonts、Lorem Ipsum、Animista、Blobmaker、Spline、CodeToGo、UnusedCSS 和 Responsively,帮助开发者提高效率和项目质量。这些工具涵盖了设计、动画、代码片段管理、响应式测试等多个方面。
66 0
推荐 10 个前端开发会用到的工具网站
|
1月前
|
Web App开发 前端开发 开发工具
2024前端开发工具推荐
本文推荐了2024年最受前端开发者欢迎的十款工具,包括Visual Studio Code、Dreamweaver、Sublime Text、WebStorm、Atom、HBuilder、Chrome Developer Tools、Figma、Postman和Git。这些工具覆盖了代码编辑、调试、版本控制及API开发等多个方面,旨在帮助开发者提高效率和代码质量,让开发工作更高效、更愉快。
|
29天前
|
存储 前端开发 JavaScript
前端模块化打包工具的深度解析
【10月更文挑战第13天】前端模块化打包工具的深度解析