引言

在工作中,经常会遇到要把文件合并和压缩等操作,我经历过下面的演进过程:

  • 使用ajaxmin工具手动合并和压缩
  • 使用Grunt合并和压缩
  • 使用Gulp合并和压缩

这里不探讨Grunt和Gulp的优劣(详细的对比 自己去看),看开发者自己的喜好吧。

正文

1. 安装NodeJS

目前(2015.09.28)的版本是 v4.1.1,前去现在 , 【网站能进去,下载可能不行,应该是被墙了,和谐社会,大侠们各显神通吧】,下载下来之后,直接安装就可以了。

2. 安装Gulp环境

如果直接使用命令安装Gulp会被墙掉,下载不下来,需要先修改默认镜像为国内镜像,具体步骤如下:

  1. 使用CMD命令进入node.js的node.exe所在目录,运行命令:

     npm config set registry http://registry.cnpmjs.org/
  2. 安装npm全局环境,运行命令:

     npm install gulp –g

3. 项目中使用Gulp

  1. 进入项目的适当位置(一般为根本目录或前端代码的最上层),运行安装本地Gulp环境,运行命令:

     npm install gulp --save-dev
  2. 安装css,js压缩的环境,运行命令:

     npm install gulp-minify-css gulp-uglify gulp-concat gulp-rename gulp-jshint del --save-dev
    
     /////////////////
    
     1.css压缩   gulp-minify-css
    2.js压缩   gulp-uglify
    3.js合并   gulp-concat 
    4.重命名   gulp-rename
    5.js代码检测  gulp-jshint (或gulp-jslint)
    6.文件删除 del
  3. 新建文件名为 gulpfile.js 文件,样本文件:

     var gulp = require('gulp'),
    minifycss = require('gulp-minify-css'),
    concat = require('gulp-concat'),
    uglify = require('gulp-uglify'),
    rename = require('gulp-rename'),
    del = require('del'); //压缩css
    gulp.task('minify_css',["clean"], function () {
    var cssSrc = ['./css/*.css']; return gulp.src(cssSrc) //压缩的文件
    .pipe(concat('all.css')) //合并所有css到all.css
    .pipe(gulp.dest('./main/css')) //输出文件夹
    .pipe(rename({suffix: '.min'}))
    .pipe(minifycss())
    .pipe(gulp.dest('./main/css')); //执行压缩
    }); //压缩js
    gulp.task('minify_js',["clean"], function() {
    var jsSrc = ['./lib/*.js','!./lib/*.src.js']; return gulp.src(jsSrc)
    .pipe(concat('all.js')) //合并所有js到all.js
    .pipe(gulp.dest('./lib')) //输出all.js到文件夹
    .pipe(rename({suffix: '.min'})) //rename压缩后的文件名
    .pipe(uglify()) //压缩
    .pipe(gulp.dest('./lib')); //输出
    }); //执行压缩前,先删除以前压缩的文件
    gulp.task('clean', function() {
    return del(['./css/all.css', './css/all.min.css', './lib/all.js', './lib/all.min.js'])
    }); // 默认任务
    gulp.task('default', function(){
    gulp.run('minify_css', 'minify_js');
    });
  4. 根据业务需求修改 gulpfile.js

  5. 直接运行gulp命令

  6. 检查压缩文件,是否正常

做技术就是这样,很多东西要先学会使用,再求深入了解,但不能只停留在会使用的阶段

项目实战-Gulp使用的更多相关文章

  1. Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  2. 给缺少Python项目实战经验的人

    我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...

  3. 【腾讯Bugly干货分享】React Native项目实战总结

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...

  4. Asp.Net Core 项目实战之权限管理系统(0) 无中生有

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  5. Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  6. Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  7. Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  8. Asp.Net Core 项目实战之权限管理系统(5) 用户登录

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  9. Asp.Net Core 项目实战之权限管理系统(6) 功能管理

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

随机推荐

  1. Pandas_key_point

    10分钟快速入门pandas: http://pandas.pydata.org/pandas-docs/stable/10min.html ----------------------------- ...

  2. testNG 并发测试

     invocationCount是并发数,threadPoolSize是线程数,当线程是1的时候就是依次执行n次,当线程是并发次数时,就是同时执行n次    @Test public void abc ...

  3. 【leetcode】922. Sort Array By Parity II

    题目如下: 解题思路:非常简单的题目,引入两个变量oddInx = 1和evenInx = 0,和与A等长的结果数组res.然后遍历A,如果A[i]为偶数,则令res[evenInx] = A[i], ...

  4. HTTP 错误 500.21 - Internal Server Error处理程序“NickLeeCallbackHandler”在其模块列表中有一个错误模块“ManagedPipelineHandler”

    HTTP 错误 500.21 - Internal Server Error处理程序“NickLeeCallbackHandler”在其模块列表中有一个错误模块“ManagedPipelineHand ...

  5. 因为看见,所以发现:QBotVariant谢绝落幕

    互联网给人带来便捷的同时,其公开大量的资源也同样给恶意利用者带了便捷,越来越多公开的恶意程序源码降低了对外攻击.入侵的难度,使得安全问题愈加严重. 阿里云安全团队从今年5月份监测到一BOT家族,其样本 ...

  6. Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件

    一.SQL数据导入/导出 目标: 使用SQL语句完成下列导出.导入操作: 将/etc/passwd文件导入userdb库userlist表并给每条记录加编号 将userdb库userlist表中UID ...

  7. ubuntu下安装apidoc

    1.到http://nodejs.cn/download/下载nodejs 可以复制链接 使用wget下载更加快速 选择对应的操作系统位数 下载到/usr/local/src 此处强烈不建议编译安装 ...

  8. BZOJ 3531: [Sdoi2014]旅行(树链剖分+线段树)

    传送门 解题思路 以每个颜色为根开一棵权值线段树,下标就是\(dfs\)序,其余都是基本操作,要动态开点. 代码 #include<iostream> #include<cstdio ...

  9. Python字典操作及课后练习

    '''dict,唯一一个映射数据类型数据类型划分:可变数据类型,不可变数据类型不可变数据类型:元组,bool int str(对str的任何改变都是形成了新的str,对原来的str没有改变)可变数据类 ...

  10. 【Tomcat】使用Tomcat部署Spring Boot项目生成的jar包

    介绍 简单来说,Tomcat是一个免费的,用于Java Web应用以及其它Web应用的一个Web服务器.(简单地概括一下,可能有误) 下载与安装 本文章目标是把Spring Boot Web项目生成的 ...