gulp折腾

###1. 安装###
全局安装 gulp:
```
> npm install --global gulp
```
初始化项目:
1. 创建项目目录:
```
> mkdir demo01
> cd demo01
```
2. 创建package.json
```
> npm init
```
按照提示完成配置,就会在项目目录下创建 package.json 的文件

3. 作为项目的开发依赖(devDependencies)安装:
```
> npm install gulp --save-dev
```
在项目中安装gulp并添加package.json

###2. 创建任务 -gulpfile.js###
创建gulpfile.js文件
```
//引入gulp依赖
var gulp = require("gulp");

//添加gulp任务,第一个参数是任务的名称,第二个参数是任务的方法
gulp.task("hello", function() {
console.log("hello");
});
```
命令行执行
```
> gulp hello
```

添加默认任务:
```
var gulp = require("gulp");

gulp.task("hello", function() {
console.log("hello");
});

//默认任务列表
gulp.task("default", ["hello"]);
```
命令行执行:
```
> gulp
```
运行gulp之后,会执行default列表中的任务

###3. gulp基础###

```
gulp.src(); //获取处理文件
gulp.pipe(); //处理管道,指定处理方式
gulp.src(gulp.dest()); //将文件输出到指定的地方
```

```
//单个文件复制
gulp.task("copy-index", function() {
return gulp.src("./index.html").pipe(gulp.dest("./dist"));
});
------------------------------------------------------------
globs
//指定文件格式的复制
gulp.task("images", function() {
return gulp.src("./images/*.jpg").pipe(gulp.dest("./dist/images"));
});

//指定多个文件扩展名: 可以指定多个扩展名
gulp.task("images", function() {
return gulp.src("./images/*.{jpg,png}").pipe(gulp.dest("./dist/images"))
});

//所有文件 **/* 表示images下所有的目录和子目录下所有的文件
gulp.task("images", function() {
return gulp.src("./images/**/*").pipe(gulp.dest("./dist/images"))
});

多个globs
gulp.task("data", function() {
return gulp.src(["./xml/*.xml", "./json/*.json"]).pipe(gulp.dest("./dist/data"));
});

//排除
gulp.task("data", function() {
return gulp.src(["./xml/*.xml", "./json/*.json", "!./json/secret-*.json"]).pipe(gulp.dest("./dist/data"));
});

//批量执行任务
gulp.task("build", ["copy-index","images","data"], function() {
console.log("编译成功")
});

//任务监视
gulp.task("watch", function() {
gulp.watch("./index.html", ["copy-index"]);
gulp.watch("./images/**/*.{jpg,png}", ["images"]);
gulp.watch(["./xml/*.xml","./json/*.json","!./json/secret-*.json"],["data"]);
});
```
###4. 插件###
4.1 编译Sass: gulp-sass

4.2 编译Less: gulp-less

4.3 创建本地服务器: gulp-connect

```
> npm install gulp-connect --save-dev
```

```
gulp.task("server", function() {
connect.server({
root: "dist", //设置服务的根目录
port: "8081"
});
});

> gulp server
```
4.4 文件合并: gulp-concat

```
> npm install gulp-concat --save-dev
```

```
gulp.task("scripts", function() {
return gulp.src(["./javascripts/jquery.js", "./javascripts/angular-route.js"])
.pipe(concat("vender.js"))
.pipe(gulp.dest("./dist/scripts"));
});
```

4.5 最小化js文件(文件压缩): gulp-uglify
```
> npm install gulp-uglify
```

```
gulp.task("scripts", function() {
return gulp.src(["./javascripts/jquery.js", "./javascripts/angular-route.js"])
.pipe(concat("vender.js"))
.pipe(uglify()) //文件压缩
.pipe(gulp.dest("./dist/scripts"));
});
```

4.6 最小化css文件: gulp-minify-css
```
> npm install gulp-minify-css --save-dev
```

```
gulp.task("minifyCss", function() {
return gulp.src("./stylesheets/main.css")
.pipe(minifyCss())
.pipe(gulp.dest("./dist/css"));
})
```

4.7 最小化图像: gulp-imagemin
```
> npm install gulp-imagemin --save-dev
```
```
gulp.task("imagemin", function() {
return gulp.src("./images/**/*")
.pipe(imagemin())
.pipe(gulp.dest("./dist/images"))
});

```

时间: 2024-10-12 22:41:52

gulp折腾的相关文章

Vue ES6

Vue ES6 Jade Scss Webpack Gulp 一直以来非常庆幸曾经有翻过<代码大全2>:这使我崎岖编程之路少了很多不必要的坎坷.它在软件工艺的话题中有写到一篇:“首先是为人写程序,其次才是机器(Write Programs for People First, Computers Second)”.虽然这是针对代码可读性来谈及的,但这间接昭示了开发效率之重要不是?此次以 Vue , Es6, Jade, Scss , Webpack, Gulp等一套强大组合来改善团队前端工作流,

在Visual Studio 2015的Cordova项目中使用Gulp

之前一直是在vs 2013中使用Cordova来开发移动app(目前有iPad版/iPhone版/安卓版),准备到下一个milestone的时候升级到2015,这两天在尝试各种东西. 2015中的cordova项目和2013结构变化很大,所以需要一个手动迁移过程,这个过程之前已经有同事尝试过了,包括很多插件可能都要重新安装,不同插件的使用可能还有些不太一样. 这两天在研究如何在项目里使用gulp这个前端集成工具,vs 2015支持这个东西是一个非常大的利好,之前很多事情现在都可以自动来做了. g

两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置

序:一年多没更新博客园的内容了,core已经发生了翻天覆地的变化,想起2014年这时候,我就开始了从当时还叫k的那套preview都不如的vnext搭建这套系统,陆陆续续它每一次升级,我也相应地折腾,大约4个月前,我开始把生产环境的一部分从 windows server 迁移到 centos 7 上,观察了几个月,觉得可以全面迁移了,于是总结了折腾的路上几点经验,与大家共勉.虽说我今天早已不是全职程序员,但是这套系统在我有空的时候总会维护与更新,它的运作与我目前的工作相辅相成,并且会一直更新下去

gulp + webpack 构建多页面前端项目

修改增加了demo地址 gulp-webpack-demo 之前在使用gulp和webpack对项目进行构建的时候遇到了一些问题,最终算是搭建了一套比较完整的解决方案,接下来这篇文章以一个实际项目为例子,讲解多页面项目中如何利用gulp和webpack进行工程化构建.本文是自己的实践经验,所以有些解决方案并不是最优的,仍在探索优化中.所以有什么错误疏漏请随时指出. 使用gulp过程中的一些问题,我已经在另外一篇文章讲到了 grunt or gulp 前言 现在为什么又整了一个webpack进来呢

送干货,实用内联gulp插件——gulp-embed

现在npm上有很多gulp内联工具,用于把脚本和样式内嵌到HTML页面上,之前搞项目我也在这些插件中寻觅许久,但均不满足公司项目的一个需求—— HTML上同时插入了开发(dev版,src文件夹下,比如 src/index.html)和gulp处理后(build版,dest文件夹下,比如 dest/index.html)的两种版本的脚本,要求运行src文件夹下的该页面时,能忽略掉引入的build版的脚本(比如src/a.js):而在运行dest文件夹下的该页面时,能忽略的引入的dev版的脚本(比如

前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、Git/SVN)

一. 各类概念和指令介绍 1. NVM (1).  全称:Node Version Manager,是一款针对Nodejs的版本管理工具,由于Node的版本很多,很多时候我要需要依赖多个版本,并且要求可以自动切换,这个时候采用NVM来管理Node再合适不过了. (2). 下载地址:https://github.com/coreybutler/nvm-windows/releases (3). 常用指令: a. 查看已经安装的node版本:    [nvm list] b. 更换当前node的版本

一处折腾笔记:Android内嵌html5加入原生微信分享的解决的方法

有一段时间没有瞎折腾了. 这周一刚上班萌主过来反映说:微信里面打开聚客宝.分享功能是能够的(这里是用微信自身的js-sdk实现的).可是在android应用里面打开点击就没反应了:接下来狡猾的丁丁在产品群里AT我说:偶们的产品设计不是一直都被技术给反压制住么?真是气死,呵呵.自己刚好有空又有兴趣,于是研究了下.没曾想竟也研究出来了.事后我对整个操作过程整理了下,方便他人也提升自己. 废话少扯.以下上干货. 我的思路是:在点击h5上的分享图标时.触发js事件,在这里面能够对当前设备的操作系统和浏览

gulp教程(sass,livereload,md5,css压缩,js压缩,img的base64)

环境 node -v  v6.10.3 npm -v  3.10.10 package.json如下: { "name": "zhcsdata", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": &

gulp插件的使用方法

gulp插件很多,这里介绍几个比较常用的插件... 1.gulp-less:用于把less文件编译成css文件. 因为html文件中不能直接引用less文件(需要导入相关编译js文件配合才行),因此需要想方设法把相应less文件编译成less文件编译成css文件.除了考拉编译外,还可以通过gulp这个自动化构建工具实现less文件的编译. 在用gulp编译前,首先你需要安装node.js.gulp是基于node.js,理所当然需要安装node.js.npm(node package manage