项目实战-Gulp使用
引言
在工作中,经常会遇到要把文件合并和压缩等操作,我经历过下面的演进过程:
- 使用ajaxmin工具手动合并和压缩
- 使用Grunt合并和压缩
- 使用Gulp合并和压缩
这里不探讨Grunt和Gulp的优劣(详细的对比 自己去看),看开发者自己的喜好吧。
正文
1. 安装NodeJS
目前(2015.09.28)的版本是 v4.1.1,前去现在 , 【网站能进去,下载可能不行,应该是被墙了,和谐社会,大侠们各显神通吧】,下载下来之后,直接安装就可以了。
2. 安装Gulp环境
如果直接使用命令安装Gulp会被墙掉,下载不下来,需要先修改默认镜像为国内镜像,具体步骤如下:
使用CMD命令进入node.js的node.exe所在目录,运行命令:
npm config set registry http://registry.cnpmjs.org/
安装npm全局环境,运行命令:
npm install gulp –g
3. 项目中使用Gulp
进入项目的适当位置(一般为根本目录或前端代码的最上层),运行安装本地Gulp环境,运行命令:
npm install gulp --save-dev
安装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
新建文件名为
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');
});
根据业务需求修改
gulpfile.js
直接运行gulp命令
检查压缩文件,是否正常
做技术就是这样,很多东西要先学会使用,再求深入了解,但不能只停留在会使用的阶段
项目实战-Gulp使用的更多相关文章
- Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- 给缺少Python项目实战经验的人
我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...
- 【腾讯Bugly干货分享】React Native项目实战总结
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e16a7640ad7b4682c64a7 “8小时内拼工作,8小时外拼成长 ...
- Asp.Net Core 项目实战之权限管理系统(0) 无中生有
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(5) 用户登录
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- Asp.Net Core 项目实战之权限管理系统(6) 功能管理
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
随机推荐
- java23种设计模式(一)-- 工厂模式、抽象工厂模式和单例模式
一.工厂模式 1.定义统一的接口,并在接口中定义要实现的抽象方法. 2.创建接口的具体实现类,并实现抽象方法. 3.创建一个工厂类,根据传递的参数,生成具体的实现类对象,执行具体的方法. 优点: 1. ...
- 第06章 AOP XML
第06章 以XML方式配置切面 1.概述 除了使用AspectJ注解声明切面,Spring也支持在bean配置文件中声明切面.这种声明是通过aop名称空间中的XML元素完成的. 正常情况下,基于注解的 ...
- Python3.5-20190504-廖老师的2-if elif else continue break
条件判断: if 条件1: 代码块 elif 条件2: 代码块 else 条件3: 代码块 brith = input("请输入出身年月:") if brith > 200 ...
- malloc,free实验
#include <stdio.h> #include <stdlib.h> int main() { char a = 0; //int * p = (int * ) mal ...
- SQL Server 2014 各版本介绍
SQL Server 2014 各版本介绍 目前,SQL Server 2014 分为主要版本和专业版. 在选择版本的时候可以根据您具体的需要进行抉择,如果你需要一个免费的数据库管理系统,那么就选择 ...
- POJ 3279 Fliptile (dfs+二进制)
Description Farmer John knows that an intellectually satisfied cow is a happy cow who will give more ...
- 容器————priority_queue
#include <queue> 与queue不同的是可以自定义其中数据的优先级,让优先级高的先出队列. 优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本 ...
- 深入理解dijkstra+堆优化
深入理解dijkstra+堆优化 其实就这几种代码几种结构,记住了完全就可以举一反三,所以多记多练多优化多思考. Dijkstra 对于一个有向图或无向图,所有边权为正(边用邻接矩阵的形式给出), ...
- python 找到列表中满足某些条件的元素
a = [0, 1, 2, 3, 4, 0, 2, 3, 6, 7, 5] selected = [x for x in a if x in range(1, 5)] # 找到a中属于[1,5)中 ...
- Python错误 importModuleNotFoundError: No module named 'Crypto'
0x00经过 今天在python中导入模块的用 from Crypto.Cipher import AES 的时候出现了找不到模块的错误. 百度了很长时间有很多解决方法,但是因不同的环境不同的 ...