gulp自动化构建教程
gulp及gulpfile.js编写示例
一、什么是gulp
简单来说:就是压缩前端代码,实现浏览器自动刷新的工具。
完整地说:gulp是一个前端的自动化构建工具,是基于Node.js的自动化任务运行期,能自动化完成javascript/sass/less/html/image/css等文件的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成、并监听文件在改动后重复指定(在gulpfile.js中指定)的这些步骤。
二、使用步骤
1、全局安装
在cmd中输入:npm install -g cnpm --registry=https://registry.npm.taobao.org
然后就开始下载安装,如下图:
(2)全局安装gulp:
上一步安装结束后,再在cmd下接着输入(这里cnpm也可换成npm,cnpm是在淘宝镜像下载,npm是在国外官网下载,实际上两者相同,这里就看心情选择吧^^):cnpm install gulp -g
2、局部安装:
(1)在项目中生成package.json文件:
全局安装完成后,开始局部安装。首先,选择一个文件夹,这个文件夹就是你项目的最外层文件夹,在这个文件夹下打开cmd(比如我自己来说,有一个项目名为a,那我就在a下的文件夹里边打开cmd)。
在上图所示的cmd中输入:cnpm init -y,等待下载安装
(2)在项目本地安装gulp:
上一步安装完成后,接着输入:cnpm install gulp --sava-dev
(3)安装gulp插件:
插件介绍:gulp-clean-css(压缩css的插件)、gulp-htmlmin(压缩html的插件)、gulp-uglify(压缩js)、gulp-babel(将es6转换成es5)、gulp-rename(重命名)、gulp-connect(部署静态资源,实现自动刷新)。。。还有很多,可在https://www.npmjs.com/package中搜索插件
安装插件:(2)下载安装完成后,继续输入:cnpm i 插件名 -D)(比如:cnpm i gulp-clean-css -D),等待下载安装
(4)在项目根目录下,创建gulpfile.js,在里面书写代码,用于操控插件:书写内容详情见 三 。
(5)执行任务:(3)安装完成并(4)中的gulpfile.js编写完成后,接着在cmd中输入:gulp 任务名称
三、gulpfile.js编写:
//定义变量,引入gulp及各个插件
const gulp = require("gulp"),
sass = require("gulp-sass"),
connect = require("gulp-connect"),
uglify = require("gulp-uglify"),
babel = require("gulp-babel"),
htmlmin = require("gulp-htmlmin");// 编译SCSS文件
gulp.task("sass", function() {
gulp.src("./src/scss/*.scss")
.pipe(sass({outputStyle:"compressed"}))
.pipe(gulp.dest("./src/css"))
.pipe(connect.reload());
});
// html文件修改刷新
gulp.task("html", function() {
gulp.src("./src/**/*.html")
.pipe(connect.reload());
});
// js文件修改刷新
gulp.task("js", function() {
gulp.src("./src/js/*.js")
.pipe(connect.reload());
});
// 启动服务器
gulp.task("connect", function() {
connect.server({
root : "src",
livereload : true
});
});
// 监视任务
gulp.task("watch", function(){
gulp.watch("./src/**/*.html", ["html"]);
gulp.watch("./src/js/*.js", ["js"]);
gulp.watch("./src/scss/*.scss", ["sass"]);
});
// 开发环境下的gulp任务
gulp.task("dev", ["sass", "html", "js", "connect", "watch"]);/***************************************************************/
// 生产环境下的 gulp 任务,将项目生成到 dist 目录下
// dist 目录下的资源是直接用于生产环境(发布项目)的资源
// 编译SCSS文件:生产环境
gulp.task("prod_sass", function() {
gulp.src("./src/scss/*.scss")
.pipe(sass({outputStyle:"compressed"}))
.pipe(gulp.dest("./dist/css"))
.pipe(connect.reload());
});
// html文件压缩
gulp.task("prod_html", function() {
gulp.src("./src/**/*.html")
.pipe(htmlmin({collapseWhitespace: true}))
.pipe(gulp.dest("./dist"))
.pipe(connect.reload());
});
// JS转换及压缩
gulp.task("prod_js", function() {
gulp.src("./src/js/*.js")
.pipe(babel({
presets: ['env']
}))
.pipe(uglify())
.pipe(gulp.dest("./dist/js"))
.pipe(connect.reload());
});
// 复制源文件夹下资源到目标文件夹
gulp.task("copy-images", function() {
gulp.src("./src/images/**/*.*")
.pipe(gulp.dest("./dist/images"));
});
gulp.task("copy-lib", function() {
gulp.src("./src/lib/**/*.*")
.pipe(gulp.dest("./dist/lib"));
});
gulp.task("prod_copy", ["copy-images", "copy-lib"]);
// 监视任务
gulp.task("prod_watch", function(){
gulp.watch("./src/**/*.html", ["prod_html"]);
gulp.watch("./src/js/*.js", ["prod_js"]);
gulp.watch("./src/scss/*.scss", ["prod_sass"]);
});
// 启动服务器
gulp.task("prod_connect", function() {
connect.server({
root : "dist",
livereload : true
});
});
// 生产环境gulp任务
gulp.task("production", ["prod_sass", "prod_html", "prod_js", "prod_copy", "prod_connect", "prod_watch"]);
gulp自动化构建教程的更多相关文章
- gulp自动化构建工具的使用
gulp自动化构建工具: 把前端开发常见的处理(“搬砖”)程序,通过一个工具模块管理起来,只需配置一次,达到自动处理目的,简化开发,提高效率!! 安装: 1.全局安装(全局安装一个gulp命令) A. ...
- gulp 自动化构建html项目--自动刷新
使用gulp自动化构建项目是前端学习的重要部分,gulp依赖于node.js.首选电脑要配置node和npm. 查看node版本号 node --version 查看npm 版本 npm --vers ...
- gulp自动化构建工具
gulp 自动化构建工具,实时监控.代码合并.压缩... http://www.gulpjs.com.cn/ 中文网 http://gulpjs.com/plugins/ 英文网 ...
- gulp自动化构建
最近正在使用gulp去帮我自动化构建一些技术块,感觉很爽,所以把gulp操作步骤给写笔记,记录下来... 首先了解什么是gulp? 我的理解是一个工具并且自动化的,能帮你把一些前端技术的语法转换成当前 ...
- Gulp(自动化构建工具 )
前言 Gulp,简而言之,就是前端自动化开发工具,利用它,我们可以提高开发效率. 比如: 1. 压缩js 2. 压缩css 3. 压缩less 4. 压缩图片 等等… 我们完全可以利用Gulp ...
- Gulp自动化构建的基本使用
Study Notes 本博主会持续更新各种前端的技术,如果各位道友喜欢,可以关注.收藏.点赞下本博主的文章. Gulp 用自动化构建工具增强你的工作流程! gulp 将开发流程中让人痛苦或耗时的任务 ...
- 前端gulp自动化构建配置
为了节省http请求次数.节约带宽,加速页面渲染速度,达到更好用户体验的目的.现在普遍的做法是在上线之前做静态资源的打包构建,也就是静态资源的合并压缩: 这里使用的是gulp,当然现在有更强大的模块化 ...
- gulp自动化构建工具安装使用(1)
我用的是windows,所以以下操作针对于windows用户,其他系统有不一样的地方请自行查阅资料更正. 好了,废话少说,反正也就是随手捣腾.下雨了,天晴了,我们开始搞gulp了 安装:gulp是个构 ...
- gulp自动化构建工具使用总结
简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码 ...
随机推荐
- Codeforces Round #516 (Div. 2, by Moscow Team Olympiad) D. Labyrinth
http://codeforces.com/contest/1064/problem/D 向上/向下加0,向左/右加1, step = 0,1,…… 求的是最少的步数,所以使用bfs. step=k ...
- Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- sql 各种常用函数
1.stuff函数 替换制定字符串 stuff(,,'许嵩') 结果: 最帅的许嵩最帅的我 2.replace函数 select replace('蜀云泉真是帅啊','蜀云泉','许嵩') 结果: 许 ...
- vue中extend/component/mixins/extends的区别
vue中extend/component/mixins/extends的区别 教你写一个vue toast弹窗组件 Vue.extend构造器的延伸
- vue项目中使用scss
npm install sass-loader node-sass --save-dev
- Code::Blocks代码自动提示设置及常用快捷键
Code::Blocks代码自动提示设置及常用快捷键(适用windows和linux) 1)以下需要设置的地方均在Settings->Editor...弹出的对话框中. 2)不少命令都可针对当前 ...
- 996ICU与程序猿的个人成长
目录 规划 学习 专业领域知识 知识广度 第二职业 理财 借势 添砖加瓦 最近一段时间,996ICU在互联网界引发"大地震",从普通员工.行业大佬甚至官媒都进行了发声,大家对这个问 ...
- dp填表法,刷表法
填表法:利用上一状态推当前 刷表法:利用当前推关联,利用刷表法较为便捷,向上边界较容易处理,处理在本次循环中的影响
- 复选框QCheckBox
复选框一共有三种状态:全选中.半选中和无选中.若一个父选项的子选项全部为选中状态,则该父选项为全选中:若子选项全部为无选中状态,则该父选项为无选中状态:若子选项既有全选中和无选中状态,则该父选项为半选 ...
- C - Portals Gym - 102006C (网络流最小割)
题目链接:https://cn.vjudge.net/contest/283918#problem/C 题目大意:T个测试数据,然后给你一个字符串,每一个字符串包括‘s’,‘t’,‘o’,‘#’,‘. ...