gulp的使用

/*
参考代码网址:
http://www.ido321.com/1622.html
http://colobu.com/2014/11/17/gulp-plugins-introduction/#gulp-rename
https://github.com/nimojs/gulp-book
*/

gulp的使用
// 获取 gulp
var gulp = require(‘gulp‘),
// js 压缩插件 (用于压缩 JS)
uglify = require(‘gulp-uglify‘),
// 压缩css插件(cssnano将取代gulp-minify-css)
minifyCSS = require(‘gulp-minify-css‘),
cssnano = require(‘gulp-cssnano‘),
// 获取 gulp-imagemin 模块
imagemin = require(‘gulp-imagemin‘),
// 重命名 插件
rename = require(‘gulp-rename‘),
// 压缩html插件
htmlmin = require(‘gulp-htmlmin‘),
// 合并文件
concat = require("gulp-concat"),
// html 文件对合并文件后的替换处理插件
htmlReplace = require("gulp-html-replace"),
// 复制文件(文件拷贝)
copy = require(‘copy‘);

// 版本号
var APP_VERSION = ‘v.1.0‘;

// 压缩 js 文件
// 在命令行使用 gulp script 启动此任务
gulp.task(‘script‘, function() {
// 1. 找到文件
gulp.src(‘js/*.js‘)
// 2. 压缩文件
.pipe(uglify())
// new: 压缩前修改压缩后新文件名字
.pipe(rename( function(path){
path.basename += "_" + APP_VERSION;
} ) )
// 3. 另存压缩后的文件
.pipe(gulp.dest(‘dist/js‘))
});

// 压缩 css 文件
// 在命令行使用 gulp css 启动此任务
gulp.task(‘css‘, function () {
// 1. 找到文件
gulp.src(‘css/*.css‘)
// 2. 压缩文件
.pipe(minifyCSS())
// 3. 另存为压缩文件
.pipe(gulp.dest(‘dist/css‘))
});

// 压缩图片任务
// 在命令行输入 gulp images 启动此任务
gulp.task(‘images‘, function () {
// 1. 找到图片
gulp.src(‘images/*.*‘)
// 2. 压缩图片
.pipe(imagemin({
progressive: true
}))
// 3. 另存图片
.pipe(gulp.dest(‘dist/images‘))
});

// 合并js 任务(合并压缩成功后的 js文件)
gulp.task(‘concat‘, function () {
gulp.src(‘dist/js/*.js‘) //要合并的文件
.pipe( concat(‘all.js‘) ) // 合并匹配到的js文件并命名为 "all.js"
.pipe( gulp.dest(‘dist/js‘) );
});

// 解决 gulp 合并文件后, html调用代码对应替换
gulp.task(‘htmlreplace‘, function(){
gulp.src(‘canvas_test.html‘)
.pipe( htmlReplace({‘js‘: ‘js/all.js‘}) )
.pipe( gulp.dest(‘dist/‘) );
});
// 压缩html 任务
gulp.task(‘htmlmin‘, function () {
var options = {
collapseWhitespace: true,//压缩HTML
//省略布尔属性的值 <input checked="true"/> ==> <input />
collapseBooleanAttributes: false,
//删除所有空格作属性值 <input id="" /> ==> <input />
removeEmptyAttributes: true,
//删除<script>的type="text/javascript"
removeScriptTypeAttributes: true,
//删除<style>和<link>的type="text/css"
removeStyleLinkTypeAttributes: true,
minifyJS: true,//压缩页面JS
minifyCSS: true//压缩页面CSS
};
gulp.src(‘*.html‘)
.pipe(htmlmin(options))
.pipe(gulp.dest(‘dist‘));
});

// 清除文件任务
gulp.task(‘clean‘, function(cb){
del([‘dist/*‘]);
cb();
});

// 复制任务(连续复制多个文件时,最好加上回调函数)
gulp.task(‘copy‘, function(cb){
copy([‘copy_file2.txt‘, ‘copy_file.txt‘], ‘dist/‘);
cb();
});

/*************************************************************
* 组合任务
************************************************************/

// js 压缩合并任务
gulp.task(‘ugconjs‘, function(){
// 1. 找到文件
gulp.src([‘js/concat_base.js‘, ‘js/uglify_utils.js‘])
// 2. 压缩文件
.pipe(uglify())
// 3. 合并成一个文件
.pipe( concat(‘all.js‘) )
// 4. 改名
.pipe(rename( function(path){
path.basename += "_" + APP_VERSION;
} ) )
// 5. 另存压缩后的文件
.pipe(gulp.dest(‘dist/js‘))
});

// 组合任务: 先替换html再压缩
gulp.task(‘htmlcomp‘, function(){
var options = {
collapseWhitespace: true,//压缩HTML
//省略布尔属性的值 <input checked="true"/> ==> <input />
collapseBooleanAttributes: false,
//删除所有空格作属性值 <input id="" /> ==> <input />
removeEmptyAttributes: true,
//删除<script>的type="text/javascript"
removeScriptTypeAttributes: true,
//删除<style>和<link>的type="text/css"
removeStyleLinkTypeAttributes: true,
minifyJS: true,//压缩页面JS
minifyCSS: true//压缩页面CSS
};
gulp.src(‘canvas_test.html‘)
.pipe( htmlReplace({‘js‘: ‘js/all_‘ + APP_VERSION + ‘.js‘}) )
.pipe( htmlmin(options) )
.pipe( gulp.dest(‘dist/‘) );
});

// 默认任务
gulp.task(‘default‘, [‘clean‘], function(){
gulp.start(‘ugconjs‘, ‘htmlcomp‘, ‘copy‘, ‘css‘, ‘images‘);
});

/*************************************************************
* 本地js html css本地压缩
************************************************************/
// 字符串拷贝进 js/str.js 中, 然后运行 `gulp str-js`
gulp.task(‘str-js‘, function() {
gulp.src(‘js/str.js‘)
.pipe(uglify())
.pipe(gulp.dest(‘dist/js‘));
});
// 字符串拷贝进 css/str.css 中, 然后运行 `gulp str-css`
gulp.task(‘str-css‘, function () {
gulp.src(‘css/str.css‘)
.pipe(cssnano())
.pipe(gulp.dest(‘dist/css‘));
});
// 字符串拷贝进 str.html 中, 然后运行 `gulp str-html`
gulp.task(‘str-html‘, function () {
var options = {
collapseWhitespace: true,//压缩HTML
//省略布尔属性的值 <input checked="true"/> ==> <input />
collapseBooleanAttributes: false,
//删除所有空格作属性值 <input id="" /> ==> <input />
removeEmptyAttributes: true,
//删除<script>的type="text/javascript"
removeScriptTypeAttributes: true,
//删除<style>和<link>的type="text/css"
removeStyleLinkTypeAttributes: true,
minifyJS: true,//压缩页面JS
minifyCSS: true//压缩页面CSS
};
gulp.src(‘str.html‘)
.pipe(htmlmin(options))
.pipe(gulp.dest(‘dist‘));
});

时间: 2024-10-18 13:45:12

gulp的使用的相关文章

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

git上传文件到github与gulp的简单使用

git有两种方式提交源代码到github 第一种方式通过地址提交下面介绍的是通过ssh方式上传 git使用ssh方式上传代码到githubgit首先要生成公钥和私钥 将公钥添加到github中将私钥保存在本地 + 命令:`ssh-keygen -t rsa`生成的公钥与私钥文件会在当用户目录的.ssh目录下. 把代码push到服务器时需要先pull一下(pull的作用是从远程下载git项目里的文件,然后将文件与本地的分支进行merge) git pull和gitclone区别:git pull

gulp

了解 首先我们了解一下什么是gulp, gulp是前端自动化构建工具,在开发过程中很多重复的任务,我们都可以正确的使用gulp来完成,gulp基于nodejs,

前端构建工具gulp入门教程

新建Gulpfile文件,运行gulp 安装好gulp后我们需要告诉它要为我们执行哪些任务,首先,我们自己需要弄清楚项目需要哪些任务. 检查Javascript 编译Sass(或Less之类的)文件 合并Javascript 压缩并重命名合并后的Javascript 安装依赖 npm install gulp-jshint gulp-sass gulp-concat gulp-uglify gulp-rename --save-dev 新建gulpfile文件 现在,组件都安装完毕,我们需要新建

Gulp新手入门教程

Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭建web服务器 文件保存时自动重载浏览器 使用预处理器如Sass.LESS 优化资源,比如压缩CSS.JavaScript.压缩图片 当然Gulp能做的远不止这些.如果你够疯狂,你甚至可以使用它搭建一个静态页面生成器.Gulp真的足够强大,但你必须学会驾驭它. 这是这篇文章的主要目的.帮助你了解Gulp的基础用法,助你早日完成一统天下的大业. 在我们深入了解之前,我们先来说说为什么是Gulp. 为什么是Gulp? 类似Gulp的

gulp使用方法总结

gulp是用于前端构建的基于文件流的一套工具.可以用于压缩.编译.合并.检查文件等操作.可以节省大量的用于繁琐重复操作的人力.最开始就是安装gulp工具了,在命令行中切换到工作的文件目录下,安装gulp:可以选择局部安装(cnpm install gulp --save-dev),也可以选择全局安装(cnpm install gulp -g).使用gulp主要要用到3个API:(1)gulp.src(): 主要用于获得匹配的目标文件.src的参数可以是一个匹配字符串(*是通配符),也可以是一个确

gulp入门教程

gulp是什么? gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用它,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率. gulp是基于Nodejs的自动任务运行器, 它能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试.检查.合并.压缩.格式化.浏览器自动刷新.部署文件生成,并监听文件在改动后重复指定的这些步骤

前端构建工具gulp

前段时间做一个项目,试着用gulp来构建前端代码.今天简单总结了一下: 一:安装gulp环境 1. 安装node 在node官方文档下载匹配的版本  我下载的是如下图的版本.http://nodejs.cn/download/ 下载好以后, 可以一直点击下一步,进行默认安装 安装好以后,在控制台输入cmd,打开命令提示符,输入node -v  查看node是否安装成功以及node的版本. 2.全局安装gulp 在命令提示符中时输入 npm install gulp -g 二:项目流程 1.生成项

使用gulp压缩js详细步骤笔记

先要安装nodejs,初始化项目配置文件package.json,根据情况输入配置参数 npm init 1 test command: 2 git repository: 3 keywords: 4 author: 5 license: (ISC) 6 About to write to E:\temp\20170429\test03\package.json: 7 8 { 9 "name": "test03", 10 "version": &