前端小白的gulp入门
gulp新手入门
全局安装 cnpm install -g gulp
本地安装 cnpm install gulp -D 如果项目没有package.json,记得npm init
安装插件cnpm install gulp-插件名 -D
细心的科普
//i -->install
//D -->--save-dev 记录package.json文件里
//S -->--save 本地安装
- gulp报低级错误
- 删除node_modules在安装
rm -rf node_modules
cnpm i
先新建一个任务清单
新建gulpfile.js文件

插件

gulp-less 编译LESS文件
gulp-autoprefixer 添加CSS私有前缀
gulp-cssmin 压缩CSS
gulp-rname重命名
gulp-imagemin 图片压缩
gulp-uglify 压缩Javascript
gulp-concat 合并
gulp-htmlmin 压缩HTML
gulp-rev 添加版本号 //md5文件加密
gulp-rev-collector 内容替换
不上代码怎么行呢?不然还是会摸不到北
//引用本地安装的gulp
var gulp = require("gulp");
var less = require("gulp-less"); //less转化
var cssmin = require("gulp-cssmin"); //压缩css
var imagemin = require("gulp-imagemin"); //压缩图片
var uglify = require("gulp-uglify"); //资源合并
var concat = require("gulp-concat"); //合并
var htmlmin = require("gulp-htmlmin"); //压缩html
var minify = require('html-minifier').minify; //注释清除插件
var postcss=require("gulp-postcss"); //加私有前缀
var autoprefixer=require("gulp-autoprefixer");
var rev = require("gulp-rev"); //添加版本号
var revCollector=require("gulp-rev-collector"); //文本替换
//定义任务
gulp.task("less", function () {
//借助gulp.src来指定less文件位置
gulp.src("./less/*.less")
//借助gulp
.pipe(less())
.pipe(cssmin())
.pipe(autoprefixer())
.pipe(rev()) //生成的文件名添加md5 垃圾回收
//通过gulp.dest进行存储
.pipe(gulp.dest("./release/piblic"))
.pipe(rev.manifest()) //记录css改名记录 是这个插件gulp-rev-collector
.pipe(gulp.dest("./release/rev"))
})
//压缩图片 命令 gulp image
gulp.task("image", function () {
gulp.src("./images/*")
.pipe(imagemin())
.pipe(gulp.dest("./imagemin"))
})
//压缩js 命令gulp js
gulp.task("js", function () {
gulp.src("./scripts/*.js")
.pipe(concat("all.js"))//合并的文件记得写名字
.pipe(uglify())
.pipe(gulp.dest("./bbb"))
})
//压缩html 命令 gulp html //注意单词别写错了哟
//这个还是看官方文档吧,很清晰
gulp.task("html", function () {
gulp.src(['./index.html', './views/*.html'],{base:'./'})
//可以写多个文件 {base:"./"}就是./是不动的,相当于忽略掉
.pipe(htmlmin({collapseWhitespace: true, removeComments: true,minifyJS:true}))
//这个看文档哦 minifyJS:true压缩html中的js
.pipe(gulp.dest("./aaa"))
})
// 替换 这个要注意文件的路径哟 其实就是替换html中的css路径,因为
// 当你把css的文件名改的就需要改html的文件路径,是不是有点罗嗦
// 记得要使用哪个插件一定提前下载,不然报错你也会一脸懵逼
gulp.task("rev",function () {
gulp.src(["./release/rev/*.json","./release/*.html"],{base:"./release"})
.pipe(revCollector())
.pipe(gulp.dest("./release"))
})
//html中的js改名替换我还没弄出来
看到官网有3000多个插件,差点吓我一跳,需要多查文挡,多百度哟
前端小白的gulp入门的更多相关文章
- (转)前端构建工具gulp入门教程
前端构建工具gulp入门教程 老婆婆 1.8k 2013年12月30日 发布 推荐 10 推荐 收藏 83 收藏,20k 浏览 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具 ...
- 前端自动化工具gulp入门基础
gulp是前端开发过程中经常要用到的工具,非常值得花时间去掌握.利用gulp,我们可以使产品流程脚本化,节约大量的时间,有条不紊地进行业务开发.本文简单讲一下入门gulp需要掌握的东西. 安装gulp ...
- 前端构建工具gulp入门教程(share)
参考自:http://segmentfault.com/a/1190000000372547 资源: npm上得gulp组件 gulp的Github主页 官方package.json文档 gulp中文 ...
- 前端构建工具gulp入门
本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp.不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情.那就直接开始吧. 第一步 ...
- 前端构建工具gulp入门教程
本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp.不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情.那就直接开始吧. 第一步 ...
- Web前端小白入门指迷
前注:这篇文章首发于我自己创办的服务于校园的技术分享 [西邮 Upper -- 004]Web前端小白入门指迷,写得很用心也就发在这里. 大前端之旅 大前端有很多种,Shell 前端,客户端前端,Ap ...
- gulp 入门使用
gulp 入门使用 使用场景 相信大家在传统的开发模式下 都是 html + css + js 然后静态文件不经过任何处理 部署到服务器,这样会有很多漏洞例如: 1.在网站上查看F12 就可以看到 ...
- 【转】Gulp入门基础教程
Gulp入门基础教程 原文在此 前言最近流行前端构建工具,苦于之前使用Grunt,代码很难阅读,现在出了Gulp, 真是摆脱了痛苦.发现了一篇很好的Gulp英文教程,整理翻译给大家看看. 为什么使用G ...
- 要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放
要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放 大师主讲 经验难得 由逐浪CMS首席架构师发哥老师,亲自主理讲解. 历时一年精心打造, 汇聚了互联网诞生 ...
随机推荐
- 解决Sublime Text 3在GBK编码下的中文乱码问题听语音
Sublime Text 3是我最喜欢的代码编辑器,没有之一,因为她的性感高亮代码配色,更因为它的小巧,但是它默认不支持GBK的编码格式,因此打开GBK的代码文件,如果里面有中文的话,就会乱码 工具/ ...
- shareInstance
2.+(id)shareInstance; 外界初始化得到单例类对象的唯一借口,这个类方法返回的就是instance,即类的一个对象, 如果instance为空,则实例化一个对象,如果不为空,则直接返 ...
- JAVA 一句话技巧
1.拆分字符串 遇到特殊字符,比如:对‘$’符号,就应该使用‘\\$’,后总结可以加个方括号如 "[.]".2.遍历HASHMAP Iterator itr = map.keySe ...
- 使用git bash提交代码到github托管
1.首先登录到https://github.com注册Github帐号,并且创建一个repository. 或者登录到 https://git.oschina.net/注册账号,并且创建一个rep ...
- 分布式CAP原理
根据维基百科定义[CAP] 根据定理,一个分布式系统最多只能满足其中两项, 不可能同时满则C-A-P三项 首先说一下对各项原则的理解 (1)一致性C: 单机环境下, 数据只有一份,所有的客户端访问的是 ...
- ArcGIS字段计算器分割字段中的字符串
ArcGIS字段计算器分割字段中的字符串 实例:在一个字段中存有长宽高三个属性数据,以x分割.例如sss为字段名(字段属性为文本类型),数据格式为:100x200x300,利用字段计算器分别将三个数存 ...
- JS事件捕获和事件冒泡
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 14.0px "Helvetica Neue" ...
- winform webbrowser如何强制使用ie11内核?
webkit.net ,cefsharp,openwebkit.net等这些基于谷歌或者基于firfox内核的浏览器有个共同点,就是必须指定winform为x86的才能使用, 而且使用过程中也是各种坑 ...
- 20170505 PHP实践中知识点
1.json_encode 不转义 2.empty() 与 isset() 区别 在使用 php 编写页面程序时,我经常使用变量处理函数判断 php 页面尾部参数的某个变量值是否为空,开始的时候我习惯 ...
- char (*p)[]和char *p[]的区别
理解的关键在于: 1. []的优先级高于*,(*p)[]理解为指向一个数组,*(p[])存放指针的数组 2. char (*p)[SIZE]:指向一维数组的指针,一维数组只能有SIZE个元素 char ...