web工作流之Gulp学习

Gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。

Gulp.js 是基于 Node.js 构建的,利用 Node.js 流的威力,你可以快速构建项目;

首先我们要搭配环境;

1、安装node.js,傻瓜式安装。

2、npm的全称是Node Package Manager ,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。

但这个npm服务器在国外,所以下载包的速度很慢,因此使用镜像cnpm

安装镜像cnpm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

3、打开相应的文件夹创建一个package.json文件,它包括名称、版本、作者这些信息等

命令式创建:

cnpm init

4、全局安装 gulp

cnpm install -g gulp

5、作为项目的开发依赖(devDependencies)安装

cnpm install --save-dev gulp

将gulp安装到局部环境中,生成node_modules

6、在项目根目录下创建一个名为 gulpfile.js 的文件:

var gulp = require('gulp');

gulp.task('default', function() {
// 将你的默认的任务代码放在这
}); require(“模块”)是需要安装模块的
require(“模块”)有多少个安装多少个,不是命令会报错

7、安装插件:

如:
cnpm install --save-dev gulp-concat cnpm install --save-dev 模块 模块 。。 。。 可单个,可多个一起安装 配置环境,因局部,不能再别的盘使用。 可以根据package.json,安装插件 命令:
gulp install

在当前文件夹打开cmd:shift+鼠标右击

点击(在此处打开命令窗口)

错误例子:

这个说明在此环境下没有安装gulp,重新安装即可

cnpm install --save-dev gulp

命令打错出现,还有乱搞也会。

所以这种错误暂时不懂,乱搞会出现的错误,目前只有重新配置这样解决做法了。

还有一种错误是没有安装插件;安装一遍即可。

只要会看错误行,就可以解决一些常见问题。

gulpfile.js的编写例子:

//加载模块

var gulp=require("gulp");
var concat=require("gulp-concat");
var rename=require("gulp-rename");
var uglify=require("gulp-uglify");
var cssmin=require("gulp-minify-css");
var htmlmin=require("gulp-htmlmin");
var brw=require("browser-sync");
/*压缩css*/
gulp.task("mincss",function(){
gulp.src("css/*.css")
.pipe(cssmin())
.pipe(gulp.dest('src/css'));
});
/*合并压缩重命名js*/
gulp.task("concat",function(){
gulp.src("js/*.js")
.pipe(concat("all.js"))
.pipe(gulp.dest("src"))
.pipe(uglify())
.pipe(rename({extname:'.min.js'}))
.pipe(gulp.dest("src"));
}); /*压缩html*/
var options={
removeComments: true,//清除HTML注释
collapseWhitespace: true,//压缩HTML
collapseBooleanAttributes: true,//省略布尔属性的值 <input checked="true"/> ==> <input />
removeEmptyAttributes: true,//删除所有空格作属性值 <input id="" /> ==> <input />
removeScriptTypeAttributes: true,//删除<script>的type="text/javascript"
removeStyleLinkTypeAttributes: true,//删除<style>和<link>的type="text/css"
minifyJS: true,//压缩页面JS
minifyCSS: true//压缩页面CSS
}
gulp.task("htmlmin",function(){
gulp.src("*.html")
.pipe(htmlmin(options))
.pipe(gulp.dest("html"));
}); /*浏览器同步*/
gulp.task("serve",function(){
brw.init({
files:["./*.html"],
server:{baseDir:"./"}
})
});

这个是编写方式,一般都是这样编写。很简单。这个使用,只要常常使用就很快熟练起来。

报错一般是细节上的问题。

 默认:

/*默认*/
gulp.task("default",["mincss","concat","htmlmin"]); 命令:
gulp 只要执行默认,就会一下子执行数组的里的任务,如:mincss,concat,htmlmin

编译sass、自动添加css前缀和压缩+监听

安装命令:

cnpm install --save-dev gulp-rename gulp-minify-css gulp-sass gulp-notify gulp-autoprefixer

gulpfile.js代码:

var gulp=require("gulp");

var rename=require("gulp-rename");
var cssmin=require("gulp-minify-css");
var sass = require('gulp-sass'),
notify = require('gulp-notify'),
autoprefixer = require('gulp-autoprefixer'); // Styles
gulp.task('styles', function() {
//编译sass,编译指定目录下的sass
return gulp.src('src/scss/*.scss')
.pipe(sass())
//添加前缀
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
//保存未压缩文件到我们指定的目录下面
.pipe(gulp.dest('dest/css'))
//给文件添加.min后缀
.pipe(rename({ suffix:'.min' }))
//压缩样式文件
.pipe(cssmin())
//输出压缩文件到指定目录
.pipe(gulp.dest('dest/css'))
//提醒任务完成
.pipe(notify({ message: 'Styles task complete' }));
});
/*监听*/
gulp.task("watch",function(){
/*src/scss/*.scss监听的路径,styles执行的任务*/
gulp.watch('src/scss/*.scss',['styles']);
})

这样就可以实现到sass的编译的,只要在编译指定目录下的创建一个.scss后缀的sass文件,在这里编译的代码都可以输出到指定目录下,还有每次

输出之后都会有提示(Styles task complete)。

web工作流的更多相关文章

  1. 基于web工作流开发

    目前在研发基于web工作流的开发 什么是工作流? 工作流简言之就是: 1.反应业务流程的计算机化的模型. 2.一类能够完全或者部分自动执行的经营过程:(为了提高效率,实现自动化). 3.任务.活动及活 ...

  2. 注册GitHub和源程序版本管理软件和项目管理软件的优缺点

    目前市面上主要源程序管理软件主要有:Microsoft TFS(Team Foundation Server).GitHub.Trac.BUGZILLA.Apple XCode.SVN Microso ...

  3. 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?并在Github注册账户,写一篇博客记录注册的过程。

    问题一:上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?(以下内容为网上查询所得) Microsoft TFS(Team Foundation Server): 优点: ...

  4. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布

    (新年巨献) RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布 历时数月,RDIFramework.NET V2.8版本发布了,感谢大家的支持. RDIFram ...

  5. 多比(SVG/VML)图形控件多比(SVG/VML)图形拓扑图控件免费下载地址

    多比图形控件是一款基于Web(VML和SVG技术)的矢量图形控件, 类似于网页上的Visio控件拓扑图软件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电 ...

  6. SharePoint加K2,将Portal系统与BPM系统完美整合!

    K2 blackPearl与Microsoft Office SharePoint 一起为解决人员和流程相互合作的解决方案而提供一个强大的平台. K2“blackpearl”根据企业的需求提供了设计, ...

  7. python:利用asyncio进行快速抓取

    web数据抓取是一个经常在python的讨论中出现的主题.有很多方法可以用来进行web数据抓取,然而其中好像并没有一个最好的办法.有一些如scrapy这样十分成熟的框架,更多的则是像mechanize ...

  8. 最新Java技术

    最近在网上查资料碰到好多没接触过的技术,先汇总在这里备用,以后慢慢吸收 1. JNA JNI的替代品,调用方式比JNI更直接,不再需要JNI那层中间接口,几乎达到Java直接调用动态库 2. Smal ...

  9. Ionic——下一代 APP 开发框架

    http://www.tuicool.com/articles/iY3ENvY 最近 Facebook React 团队释出了 React Native, 用来构建 Mobile Native 应用. ...

随机推荐

  1. vs2013的安装以及单元测试

    一.安装过程 1.下载vs2013安装包,打开进行安装.安装过程时间有点长,大概用了一个小时. 2.安装完成.需要登录,可以选择以后再说. 3.选择颜色主题. 4.打开vs2013的界面. 5.添加密 ...

  2. 个人阅读作业Week7

    没有银弹 <没有银弹>,Brooks在该论文中,强调真正的银弹并不存在,而所谓的没有银弹则是指没有任何一项技术或方法可以能让软件工程的生产力在十年内提高十倍.文中讨论到了软件工程中主要的两 ...

  3. 每天记一些php函数,jQuery函数和linux命令(一)

    简介:学习完了php和jQuery之后,对函数的记忆不到位,导致很多函数没记住,所以为了促进自己的记忆,每天花一点时间来写这个博客. 时间:2016-12-18    地点:太原    天气:晴 一. ...

  4. wireshark常用过滤规则

    wireshark常用过滤规则:(Filter中输入过滤规则)1.源ip过滤:ip.src==1.1.1.1               (过滤源ip为1.1.1.1的包) 2.目的ip过滤:ip.d ...

  5. SQL Saturday活动再起

    SQL Saturday活动再起 时间:2015年05月09日(星期六) 地点:上海徐汇区港汇2座10楼(10.073) 我们相约港汇2座10楼(10.073),SQL PASS上海分会的SQLSat ...

  6. Hadoop开发第4期---分布式安装

    一.复制虚拟机 由于Hadoop的集群安装需要多台机器,由于条件有限,我是用虚拟机通过克隆来模拟多台机器,克隆方式如下图所示

  7. 2015继续任性——不会Git命令,照样玩转Git

    最近事情比较多,一眨眼,已经半个月没有写博客了~不得不感慨光阴似箭啊!当然,2015年有很多让我们期待的事情,比如win10正式版..NET开源.VS2015等等.想想都让人兴奋啊~~ 为了迎接VS2 ...

  8. Java多线程系列--“JUC锁”05之 非公平锁

    概要 前面两章分析了"公平锁的获取和释放机制",这一章开始对“非公平锁”的获取锁/释放锁的过程进行分析.内容包括:参考代码获取非公平锁(基于JDK1.7.0_40)释放非公平锁(基 ...

  9. node访问iis使用keep-alive设置不当

    iis默认的连接超时时间为2分钟 ,因此node程序使用keep-alive访问时,keep-alive的时间不应该超过2分钟,否则在请求完成后,node端继续保持连接,2分钟后iis断开连接,会导致 ...

  10. 3、CC2541芯片中级教程-OSAL操作系统(ADC光敏电阻和修改串口波特率)

    本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 ...