前端自动化构建工具——gulp环境搭建教程
gulp是前端工程化的工具,它可以对html,css,js等代码和图片进行压缩,也可以对sass和less等预处理语言进行编译,代码部署。gulp学起来简单,用起来方便,大大提高我们工作效率。
这里可以参考CTOLib码库的gulp基本教程 ||《gulp中文网》
安装node.js
因为gulp是基于node.js的,所以先要安装一下node.js。在网页中打开node官网安装就可以:https://nodejs.org/en/
使用命令行
小编习惯用git的命令工具,当然我们可以使用Windows的命令提示符。如下:
我们直接在开始菜单搜索cmd
然后回车就会打开命令提示符窗口,
我们输入命令node -v,点击回车,便可以查看node的版本,如果没有出现版本号,则说明安装失败。
查看node和npm版本
npm(node package manager)nodejs的包管理器,用于nodejs插件的安装、卸载、管理依赖等;我们需要用npm去安装gulp和gulp的依赖包。
淘宝镜像
因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常。如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事
官方网址:http://npm.taobao.org;
在命令提示符中输入一下命令按回车安装cnpm
npm install cnpm -g --registry=https://registry.npm.taobao.org
安装完后我们可以用cnpm -v检查是否安装成功。注意,安装成功后关闭命令行窗口在打开,如果安装后直接使用可能会出现错误。
安装gulp
使用gulp需要在全局和项目中都安装。
在全局中安装命令:
$npm install --global gulp
然后我们进入我们的项目根目,,小编在E盘创建一个名为demo的项目为例。
这里我们先讲几个dos的命令:
e: 进入E盘
cd +文件名 进入指定目录
dir 查看当前目录中的文件
我们在命令提示符中执行cd demo命令就可以进入到项目根目录安装gulp了。
作为项目的开发依赖(devDependencies)安装(项目根目录):
$cnpm install --save-dev gulp
安装成功后,项目会自动生成如下目录:
第一个目录里面是项目的依赖包,第二个文件是管理你本地安装的npm包。打开package.json文件可以看到我们安装了gulp并展示了它的版本号。
package.json是基于nodejs项目必不可少的配置文件,它是存放在项目根目录的普通json文件。在之前是用cnpm init去配置它。
$cnpm init
gulp配置文件
gulpfile.js 是gulp不可缺少的配置文件,在项目根目录下创建一个名为 gulpfile.js 的文件,配置如下:
执行gulp命令:
$gulp
默认的任务会被运行,当然这个任务目前没有做任何事。
好啦,gulp的安装和配置就讲完了,之后要安装配置gulp的常用插件。
常用Gulp插件汇总-----
HTML和CSS
autoprefixer - 解析CSS并通过我可以使用添加供应商前缀到规则。
gulp-browser-sync - 在建立网站时保持多个浏览器和设备同步。
gulp-useref - 解析HTML文件中的构建块,以替换对未优化的脚本或样式表的引用。
gulp-email-design - 设计和测试HTML电子邮件模板的工作流程。
gulp-uncss - 从您的项目中删除未使用的CSS。
gulp-csso - 非常酷的CSS minificator。另外,还有很多CSS优化器和基准测试(GitHub)。但是最近我看到了没有Gulp的最强大的速记(shortthand)工具,它确实如此:
a{
font-family:Arial;
font-style:italic;
font-size:14px;
line-height:18px;
font-weight:bold;
background-image:url('example.png');
background-color: red;
background-size:cover;
background-repeat: no-repeat;
}
=>
a{
font:italic bold 14px / 18px Arial;
background: red url('example.png') no-repeat / cover;
}
gulp-htmlmin - 整齐的HTML minificator。
gulp-csscomb - 改进你的CSS的结构。
gulp-csslint - CSS linter。
gulp-htmlhint - HTML验证器。
gulp-processhtml - 在编译时处理html文件以随意修改它们。
JavaScript的
gulp-autopolyfiller - 精确的polyfills。这就像Autoprefixer,但对JavaScript填充。
gulp -babel - 编写下一代JavaScript的编译器。
gulp-jsfmt - 用于格式化,搜索和重写JavaScript。
gulp-jscs - 用于检查JavaScript代码样式。
gulp-modernizr - 建立一个精益,意味着的Modernizr 检测器。
gulp-express - 使用Express.js Web服务器启动(并监督),与socket.io配合使用
gulp-requirejs和gulp- browserify- 分别优化RequireJS和Browserify的工作。
gulp-plato - 生成静态分析报告。
gulp-complexity - 使用Halstead和Cyclomatic指标评估代码可维护性。
fixmyjs -通过JSHint (gulp-jshint)自动修复傻瓜式的lint错误。
gulp-jscpd - 用于编程源代码的复制/粘贴检测器。
gulp-buddy.js - 用于javascript的幻数检测。
gulp-jsonlint - JSON验证器。
gulp-uglify - JavaScript压缩器。
gulp-concat - 连接文件。
单元测试
图像
gulpicon - 神秘的CSS图标解决方案。
gulp-iconfont - SVG到webfont转换器。
gulp-responsive - 为响应式网站制作不同大小的图片。
gulp-sharp - 用于生产JPEG,PNG,WebP和TIFF图像的最快模块。
gulp-svgstore - 从文件夹合并SVG。
gulp-imacss - 将图像文件转换为数据URI的应用程序和库。
gulp-imagemin иgulp-tinypng或fimage压缩。
gulp-spritesmith - 将一组图像转换为spritesheet和相应的CSS变量。
其他
gulp-grunt - 能够从Gulp运行Grunt任务。
gulp-watch - 每当观看文件改变时运行任务。
gulp-notify - 当Gulp任务失败时,系统通知中心的自动错误消息。
gulp-git - 能够使用Git命令。
gulp-jsdoc - 通过运行JSDoc3生成JavaScript文档。
gulp-rev - 通过内容散列修改静态文件资产。
gulp-bump - 在包JSON和gulp-update中增加版本,它会自动更新包。
gulp-bower-files - 注入Bower软件包。
gulp-removelogs - 删除控制台日志记录语句。
gulp-preprocess - 根据环境配置预处理文件。
gulp-duration - 显示Gulp任务的执行时间。
gulp-changed和gulp-newer - 只运行自上次成功运行后修改的源文件的Gulp任务。
gulp-connect - 简单的静态web服务器。
gulp-shell - 运行Shell命令。
gulp-ssh - 提供了通过SSH和SFTP进行连接的功能。
gulp-zip - 压缩文件和文件夹..
gulp-clean和gulp-copy - 分别删除和复制来源。
gulp-replace - 在文本文件中搜索和替换字符串。
gulp-filesize - 以可读格式显示文件的大小。
gulp-util - 用于开发Gulp插件的实用程序。
编译器
- gulp-less - LESS在CSS中。
- gulp-sass - СSS中的SASS / SCSS。
- gulp-compass - CSS中带有SASS的样式指南。
- gulp-stylus - 在CSS中stylus(CSS的预处理框架)。
- gulp-coffee - JavaScript中的CoffeeScript。
- gulp-typescript - JavaScript中的TypeScript。
- gulp-jade - HTML中的Jade。
- gulp-handlebars - JST中的Handlebars模块(javascript/jquery模板引擎)。
- gulp-jst - JST中的Underscore模块(一个 JavaScript工具库)。
- gulp-react - Facebook中的React JSST模块。
- gulp-nunjucks - JST中的Nunjucks模块。
- gulp-dustjs - JST中的dustjs模块。
- gulp-angular-templatecache - JST中的AngularJS模块。
最后
- psi - PageSpeed洞察报告。
- tmi - TMI(太多图片) - 在网络上发现您的图片重量。
- ngrok - 本地主机的内省隧道(反向代理:一个从公共端点到本机的隧道)。
- pageres - 响应式网站截图。
- matchdep - 过滤npm模块依赖关系。
- 也许你想在编辑器中直接使用一些自动化方法,所以看看The Best Plugins for Sublime Text。
https://github.com/Pestov/essential-gulp-plugins
扩展阅读
混淆JavaScript代码的gulp插件:
gulp-obfuscate使用Gulp.js来自动化你的任务
以开发者的视角整理编排的前端开发所使用的语言的主流学习资源
Gulp上手指南
Gulp,比Grunt更好用的前端构建工具
为您推荐
HTML解析引擎:Jumony搭建
一个免费的,无限流量的Blog ---- github页面和Jekyll入门
Vue.js基本语法的介绍
移动前端 - 图片压缩上传实践
.NET的WebSocket开发包比较
前端自动化构建工具——gulp环境搭建教程的更多相关文章
- 前端自动化构建工具gulp的使用总结
前端自动化构建工具gulp的使用总结 博主最近偶的空闲,在此对gulp的使用做一个总结,让小伙伴知道如何合理的使用gulp以及gulp的使用技巧. 谈到gulp,有人可能就会想到另外一个构建工具gru ...
- 前端自动化构建工具——gulp
gulp是基于流的前端自动化构建工具. 一.环境配置 gulp是基于nodejs的,所以没有 nodejs 环境的要先去安装好 然后给系统配上gulp环境 npm install -g gulp 再到 ...
- 前端自动化构建工具 Gulp 使用
一个月没写博客了,今天有时间,就写个gulp的入门使用吧.. 简介:gulp是一个前端自动化构建工具,可以实现代码的检查.压缩.合并……等等,gulp是基于Node.js的自动任务运行器 一.安装No ...
- 前端自动化构建工具--Gulp&&Webpack
前端构建工具的作用可以认为是对源项目文件或资源进行文件级处理,将文件或资源处理成需要的最佳输出结构和形式. 在处理过程中,我们可以对文件进行模块化引入.依赖分析.资源合并.压缩优化.文件嵌入.路径替换 ...
- 前端自动化构建工具 gulp 学习笔记 一、
一.我对gulp的初期理解 是一种前端辅助开发工具 可以帮你把js,css,img等文件 合并.压缩,图片好像是合并为精灵图,合并为精灵图之后,还会生成一个css样式表. 官方解说是:基于流的自动化构 ...
- 前端自动化构建工具gulp记录
一.安装 1)安装nodejs 通过nodejs的npm安装gulp,插件也可以通过npm安装.windows系统是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令 ...
- 前端自动化构建工具-gulp
gulp 和grunt这两个是我知道的自动构建工具,但是说实话都没在项目中用过,不太清楚自动化构建是什么意思, 1.grunt和gulp有什么相同点和不同点? (1).易于使用:采用代码优于配置策略, ...
- 前端自动化构建工具gulp
1.gulp的安装 首先确保你已经正确安装了nodejs环境.然后以全局方式安装gulp: npm install -g gulp 全局安装gulp后,还需要在每个要使用gulp的项目中都单独安装一次 ...
- 前端自动化构建工具gulp使用
1. 全局安装 gulp: $ npm install --global gulp 2. 作为项目的开发依赖(devDependencies)安装: $ npm install --save-dev ...
随机推荐
- vue-cli3使用cdn引入
1. index.html引入: <script src="https://cdn.bootcss.com/moment.js/2.20.1/moment.min.js"&g ...
- 【记录】Swagger2 注解说明
Swagger是一个用来管理项目接口的非常好用的第三方插件, 程序员只需要通过在接口代码上设置Swagger注解, 就可以在Swagger UI上进行查看与验证接口. 很大程度上节省了,接口文档的制作 ...
- KiCAD泪滴
KiCAD泪滴 KiCAD没有自带的补泪滴功能,必须先下载一个插件,然后才能进行泪滴操作 链接 提取码:ey8o 1.下载泪滴插件,解压后将整个文件夹复制到目录 C:\Program Files\K ...
- 如何在mysql数据库中开启使用tab键补全功能
声明:数据库tab键补全的是表名,列名,数据库名,不是数据库中的命令,变量等 永久支持tab键补全[root@localhost ~]# vim /etc/my.cnf添加以下两行:[mysql]au ...
- dubbo-源码阅读之服务发布
原理 dubbo根据spring 2.0的schma实现 解析xml并初始化相关bean 初始化dubbo:service为ServiceBean实例 通过spring的生命周期相应回调实现服务发布 ...
- 【LeetCode】排序
[349] Intersection of Two Arrays [Easy] 两个无序可重复数组找交集, 交集要求元素唯一. Given nums1 = [1, 2, 2, 1], nums2 = ...
- rest framework的框架实现之 (版本,解析器,序列化,分页)
一版本 版本实现根据访问的的方式有以下几种 a : https://127.0.0.1:8000/users?version=v1 ---->基于url的get方式 #settings.pyR ...
- clickhouse核心引擎MergeTree子引擎
在clickhouse使用过程中,针对数据量和查询场景,MergeTree是最常用也是较为合适的表引擎.针对特定的业务,MergeTree的子引擎可以针对不同的业务而定,但都基于MergeTree引擎 ...
- SSM框架整合依赖
<dependencies> <!--mybatis核心jar包--> <dependency> <groupId>org.mybatis</gr ...
- Yii2的一些问题
Yii2中删除能不能串着用 Yii2中find.findAll有什么区别 Yii2中User::findOne($id)和User::find->where(['id'=>1])-> ...