前端工具gulp使用
一、构建gulp环境
1、下载nodejs
gulp基于node.js,要通过nodejs的npm安装gulp,所以要先安装node.js环境。(英文官网/中文官网链接)。
通过cmd命令窗口确定安装node.js。(在命令窗口输入node -v或npm -v 查看是否返回出版本号)。
2、全局安装gulp(全局环境)
确定正确安装了nodejs环境,然后通过命令全局方式安装gulp:
npm install gulp -g 或者 cnpm install gulp -g
二、项目流程
1)、方法一
1、生成项目所需信息文件package.json(项目目录为:F:\gulpproject)
cmd窗口进入gulp(不能有大写字母)目录,输入命令 npm init(初始化文件夹),然后一直按enter键至自动生成package.json文件。
2.项目根目录(gulpproject)下安装gulp(项目环境)
全局安装gulp后,还需要在gulppreject根目录下在单独安装一次(每个使用gulp的项目中都需单独安装一次)。
npm install gulp --save-dev
3、安装所需要的自动化插件
- 压缩js插件是 gulp-uglify
- 压缩image插件是 gulp-image
- 压缩css插件是 gulp-cssnano
- 合并 gulp-concat
- 压缩html插件是 gulp-htmlmin
如gulp-uplify安装
npm install gulp-uplify --save-dev
4、配置gulpfile.js
gulpfile.js是gulppreject(gulp项目)项目的配置文件。
如果F:\gulpproject有一个项目compress文件夹,包含要压缩、合并的css,js,image文件,那么就将gulpfile.js放入compress文件夹中。
gulpfile.js配置文件:
src里放的是文件路径,多个文件用“ , ”隔开
var gulp = require('gulp'),
uglify = require('gulp-uglify'),
concat = require('gulp-concat'),
htmlmin = require('gulp-htmlmin'),
rename = require('gulp-rename'),
cssnano = require('gulp-cssnano'),
image = require("gulp-image"),
del = require('del'),
less = require('gulp-less');
//压缩css,压缩后的文件放入dest/css
gulp.task('minifycss', function() {
return gulp.src('css/*.css')
.pipe(cssnano()) //压缩
.pipe(gulp.dest('dest/css')); //输出
});
//合并并压缩css,合并压缩后的文件放入dest/css
gulp.task('concatminifycss', function() {
return gulp.src('css/*.css')
.pipe(concat('main.css')) //合并所有css到main.css
.pipe(gulp.dest('dest/css')) //输出main.css到文件夹
.pipe(rename({ suffix: '.min' })) //rename压缩后的文件名
.pipe(cssnano()) //压缩
.pipe(gulp.dest('dest/css')); //输出
});
gulp.task("htmlmin",function(){
var options = {
removeComments: true,//清除HTML注释
collapseWhitespace: true,//压缩HTML
collapseBooleanAttributes: true,//省略布尔属性的值 <input checked="true"/> ==> <input checked/>
removeEmptyAttributes: true,//删除所有空格作属性值 <input id="" /> ==> <input />
removeScriptTypeAttributes: true,//删除<script>的type="text/javascript"
removeStyleLinkTypeAttributes: true,//删除<style>和<link>的type="text/css"
minifyJS: true,//压缩页面JS
minifyCSS: true//压缩页面CSS
};
return gulp.src('*.html')
.pipe(htmlmin(options))
.pipe(gulp.dest('dest/'));
});
//压缩js,压缩后的文件放入dest/js
gulp.task('minifyjs', function() {
return gulp.src('js/*.js')
.pipe(uglify()) //压缩
.pipe(gulp.dest('dest/js')); //输出
});
//合并并压缩js,合并压缩后的文件放入dest/js
gulp.task('concatminifyjs', function() {
return gulp.src('js/*.js')
.pipe(concat('main.js')) //合并所有js到main.js
.pipe(gulp.dest('dest/js')) //输出main.js到文件夹
.pipe(rename({ suffix: '.min' })) //rename压缩后的文件名
.pipe(uglify()) //压缩
.pipe(gulp.dest('dest/js')); //输出
});
//压缩图片,压缩后的文件放入dest/images
gulp.task('image', function() {
gulp.src('img/*.+(jpg|png|gif|svg)')
.pipe(image()) //压缩
.pipe(gulp.dest('dest/images')); //输出
});
//执行压缩前,先删除dest文件夹里的内容
gulp.task('clean', function(cb) {
del(['dest/*'], cb)
});
//编译less到css
gulp.task("less", function() {
gulp.src('css/*.less')
.pipe(less())
.pipe(gulp.dest("dest/css"));
});
//监视文件的变化
gulp.task("watch", function() {
gulp.watch("css/*.less", ['less']);
});
//默认命令,在cmd中输入gulp后,执行的就是这个命令
gulp.task('default', function() {
// 将你的默认的任务代码放在这
gulp.start('clean', 'concatminifycss', 'image', 'concatminifyjs', 'htmlmin');
});
5、执行压缩命令
要执行gulp任务,只需切换到存放gulpfile.js文件的目录(windows平台使用cmd),然后在命令行中执行gulp命令就行了。如果gulp后面加上要执行的任务名,例如gulp clean,将执行clean任务。如果没有指定任务名,则会执行任务名为default的默认任务。
2)、方法二
方法一是每次使用 gulp 构建都需要将项目放到 gulp 目录下,那可不可以不放入 gulp 目录下,直接在当前目录里执行 gulp 呢?
首先将自动化插件安装在全局环境中。即:
如gulp-uplify安装
npm install gulp-uplify -g
然后在项目中配置gulpfile.js 文件。
注意此时,在命令行中执行gulp可能报错。原因如:
Ps:项目目录也不能有大写字母。
参考出处:http://www.cnblogs.com/starof/p/5194622.html
前端工具gulp使用的更多相关文章
- 前端工具gulp
最近在写一个新的项目,用到了新框架,主要是:react+webpack.里面还用到了一个前端工具——gulp. gulp在项目里的作用是打包静态资源.编译less,压缩css等.js并不在处理之列(不 ...
- 前端自动化工具gulp自动添加版本号
之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查了资料,发现gulp还可以自动添加版本号,这个功能就为我平时 ...
- 前端自动化构建工具gulp的使用总结
前端自动化构建工具gulp的使用总结 博主最近偶的空闲,在此对gulp的使用做一个总结,让小伙伴知道如何合理的使用gulp以及gulp的使用技巧. 谈到gulp,有人可能就会想到另外一个构建工具gru ...
- 前端构建工具gulp使用
前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中文文档 https://g ...
- 前端自动构建工具@gulp入门
gulp是一个自动化的前端工具.它可以利用自身的插件来实现一些功能,如sass.less编译:浏览器自动刷新,文件压缩.重命名.代码校验(个人使用sublime的插件进行校验)等功能.当然这些功能也可 ...
- (转载)前端构建工具gulp使用
前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中 ...
- (转)前端构建工具gulp入门教程
前端构建工具gulp入门教程 老婆婆 1.8k 2013年12月30日 发布 推荐 10 推荐 收藏 83 收藏,20k 浏览 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具 ...
- 前端构建工具gulp
前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gul ...
- 前端读者 | 前端构建工具Gulp
@羯瑞 整理 前言 前端工具现在层出不穷,网上搜下一大片,就看你怎么去使用了,基于项目看用什么样的构建工具.有的工具提供的功能还是非常强大的. FIS.百度团队的产品.现在百度的多个产品中使用.面向前 ...
随机推荐
- UICollectionViewCell 网格显示数据
using System; using System.Collections.Generic; using Foundation; using UIKit; namespace ddd { publi ...
- 使用Xmanager访问CentOS远程桌面
最近在搞Qemu虚拟机相关的项目,需要用到Linux的桌面系统,用Xmanager连接CentOS桌面最方便了. Linux端:CentOS release 6.8 (Final) Windows端: ...
- pip apt source images
~/.pip/pip.conf [global] index-url = https://pypi.douban.com/simple download_cache = ~/.cache/pip [i ...
- Sonar安装配置
https://www.sonarqube.org/downloads/ 下载sonar.当前版本为6.2 解压压缩包,进行配置: 修改sonarqube-6.2\conf\sonar.propert ...
- Lua IDE
http://blog.csdn.net/visualcatsharp/article/details/37653107
- 3. web前端开发分享-css,js提高篇
一. css基础知识掌握之后(个人的标准是:弄清块元素与内联元素的区别,弄清float的应用场景,弄清position[pə'zɪʃən] 下五个属性static['stætɪk],relative[ ...
- 【转载】Unity中矩阵的平移、旋转、缩放
By:克森 简介 在这篇文章中,我们将会学到几个概念:平移矩阵.旋转矩阵.缩放矩阵.在学这几个基本概念的同时,我们会用到 Mesh(网格).数学运算.4x4矩阵的一些简单的操作.但由于克森也是新手,文 ...
- iOS多线程-多线程实现之GCD
什么是GCD? GCD: Grand Central Dispatch (重要的中枢调度器) GCD是纯C语言的, 学习它就是学习一些函数的使用. GCD的核心概念和使用步骤 核心概念 任务 : 执行 ...
- opencart邮件模板
在opencart中,几乎所有的版权信息都写在language里,我们找到catalog/language/your language/mail/order.php这个语言文件,找到 $_['text ...
- 【Android】Ignoring InnerClasses attribute for an anonymous inner class
这个问题是因为Android只能有6w个方法,解决方法,在defaultConfig中加入一句:multiDexEnabled true