Gulp的安装与配置
#Gulp的安装与配置#
标签(空格分隔): 工具
- 下载nodejs安装包
- 安装Nodejs
- 测试
- 配置npm的全局路径
- 全局安装gulp
- 本地安装gulp
- gulp的实施与使用
- 安装相关插件
- Gulpfile.js
- gulp的API介绍
##1. 下载nodejs安装包##
去nodejs官网下载软件https://nodejs.org
##2. 安装Nodejs##
Window:直接下一步下一步式安装。安装好后WIN+R输入cmd调出DOS窗口,输入node看是否有交互,如果没有则查看系统变量Path,把path配置上去。
Linux : 暂时没有实战。
##3. 测试##
创建测试文件:test.js
var http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("test nodjs");
response.end();
}).listen(8899);
console.log("nodejs start listen 8899 port!");
进入cmd命令窗口,进入test.js文件的位置node test.js
看看是否有信息正常输出和浏览器127.0.0.1:8899看是否有正常的打印。
如果都有,说明安装配置成功。
##4. 配置npm的全局路径##
Windows下的Nodejs npm路径是appdata,可能不是我们想要的路径,可以改成我们指定的路径方便管理。
在cmd下执行以下命令
npm config set cache “D:\nodejs\node_cache”
npm config set prefix “D:\nodejs\node_global”
如果命令无效,可以去nodejs的安装目录中找到node_modules\npm\npmrc文件,这个文件存放npm的userconfig配置。
修改如下即可:
prefix = D:\nodejs\node_global
cache = D:\nodejs\ node_cache
##5. 全局安装gulp##
打开Node.js command prompt
输入命令:npm install –g gulp
然后输入gulp -v,如果提示不是内部或外部命令,说明没有配置系统变量path,手动去配置pasth,地址是prefix的地址。
##6. 本地安装gulp##
建立项目,创建Gulpfile.js和package.json文件。运行命令npm install gulp –save-dev,安装本地gulp。
##7. gulp的实施与使用##
创建工作目录与发布目录
工作目录:即没有经过压缩合并等处理的文件存放目录。
发布目录:即项目发布所引用的文件目录地址,这里的文件是经过gulp压缩合并等处理后生成的文件,处理过> 后的名字可以自定义,也可以不处理即与未处理文件名相同。
##8. 安装相关插件##
###8.1 自动加载插件(gulp-load-plugins)###
安装:npm install –save-dev gulp-load-plugins
要使用gulp的插件,首先得用require来把插件加载进来,如果我们要使用的插件非常多,那我们的gulpfile.js文件开头可能就会是这个样子的:
var gulp = require('gulp'),//一些gulp插件,abcd这些命名只是用来举个例子a = require('gulp-a'), b = require('gulp-b'),c = require('gulp-c'),//更多的插件...z = require('gulp-z');
虽然这没什么问题,但会使我们的gulpfile.js文件变得很冗长,看上去不那么舒服。gulp-load-plugins插件> 正是用来解决这个问题。
gulp-load-plugins这个插件能自动帮你加载package.json文件里的gulp插件。例如假设你的package.json文件里的依赖是这样的:
{"devDependencies": {"gulp": "~3.6.0","gulp-rename": "~1.2.0","gulp-ruby-sass": "~0.4.3","gulp-load-plugins": "~0.5.1"}
}
然后我们可以在gulpfile.js中使用gulp-load-plugins来帮我们加载插件:
var gulp = require('gulp');
//加载gulp-load-plugins插件,并马上运行它
var plugins = require('gulp-load-plugins')();
然后我们要使用gulp-rename和gulp-ruby-sass这两个插件的时候,就可以使用plugins.rename和plugins.rubySass来代替了,也就是原始插件名去掉gulp-前缀,之后再转换为驼峰命名。
实质上gulp-load-plugins是为我们做了如下的转换
plugins.rename = require(‘gulp-rename’);
plugins.rubySass = require(‘gulp-ruby-sass’);
gulp-load-plugins并不会一开始就加载所有package.json里的gulp插件,而是在我们需要用到某个插件的时候,才去加载那个插件。
最后要提醒的一点是,因为gulp-load-plugins是通过你的package.json文件来加载插件的,所以必须要保证你需要自动加载的插件已经写入到了package.json文件里,并且这些插件都是已经安装好了的。
###8.2 重命名(gulp-rename)###
安装:npm install –save-dev gulp-rename
用来重命名文件流中的文件。
用gulp.dest()方法写入文件时,文件名使用的是文件流中的文件名,如果要想改变文件名,那可以在之前用gulp-rename插件来改变文件流中的文件名。
var gulp = require('gulp'),rename = require('gulp-rename'),uglify = require("gulp-uglify");gulp.task('rename', function () {gulp.src('js/jquery.js').pipe(uglify()) //压缩.pipe(rename('jquery.min.js')) //会将jquery.js重命名为jquery.min.js.pipe(gulp.dest('js'));//关于gulp-rename的更多强大的用法请参考https://www.npmjs.com/package/gulp-rename
});
###8.3 js文件压缩(gulp-uglify)###
安装:npm install –save-dev gulp-uglify
用来压缩js文件,使用的是uglify引擎
var gulp = require('gulp'),uglify = require("gulp-uglify");gulp.task('minify-js', function () {gulp.src('js/*.js') // 要压缩的js文件.pipe(uglify()) //使用uglify进行压缩,更多配置请参考:.pipe(gulp.dest('dist/js')); //压缩后的路径
});
###8.4 css文件压缩(gulp-minify-css)###
安装:npm install –save-dev gulp-minify-css
要压缩css文件时可以使用该插件
var gulp = require('gulp'),minifyCss = require("gulp-minify-css");gulp.task('minify-css', function () {gulp.src('css/*.css') // 要压缩的css文件.pipe(minifyCss()) //压缩css.pipe(gulp.dest('dist/css'));
});
###8.5 html文件压缩(gulp-minify-html)###
安装:npm install –save-dev gulp-minify-html
用来压缩html文件
var gulp = require('gulp'),minifyHtml = require("gulp-minify-html");gulp.task('minify-html', function () {gulp.src('html/*.html') // 要压缩的html文件.pipe(minifyHtml()) //压缩.pipe(gulp.dest('dist/html'));
});
###8.6 js代码检查(gulp-jshint)###
安装:npm install –save-dev gulp-jshint
用来检查js代码
var gulp = require('gulp'),jshint = require("gulp-jshint");gulp.task('jsLint', function () {gulp.src('js/*.js').pipe(jshint()).pipe(jshint.reporter()); // 输出检查结果
});
###8.7 文件合并(gulp-concat)###
安装:npm install –save-dev gulp-concat
用来把多个文件合并为一个文件,我们可以用它来合并js或css文件等,这样就能减少页面的http请求数了
var gulp = require('gulp'),concat = require("gulp-concat");gulp.task('concat', function () {gulp.src('js/*.js') //要合并的文件.pipe(concat('all.js')) // 合并匹配到的js文件并命名为 "all.js".pipe(gulp.dest('dist/js'));
});
###8.8 less和sass的编译(gulp-less,gulp-sass)###
less使用gulp-less,安装:npm install –save-dev gulp-less
var gulp = require('gulp'),less = require("gulp-less");gulp.task('compile-less', function () {gulp.src('less/*.less').pipe(less()).pipe(gulp.dest('dist/css'));
});
sass使用gulp-sass,安装:npm install –save-dev gulp-sass
var gulp = require('gulp'),sass = require("gulp-sass");gulp.task('compile-sass', function () {gulp.src('sass/*.sass').pipe(sass()).pipe(gulp.dest('dist/css'));
});
###8.9 图片压缩(gulp-imagemin)###
可以使用gulp-imagemin插件来压缩jpg、png、gif等图片。
安装:npm install –save-dev gulp-imagemin
var gulp = require('gulp');
var imagemin = require('gulp-imagemin');
var pngquant = require('imagemin-pngquant'); //png图片压缩插件gulp.task('default', function () {return gulp.src('src/images/*').pipe(imagemin({progressive: true,use: [pngquant()] //使用pngquant来压缩png图片})).pipe(gulp.dest('dist'));
});
gulp-imagemin的使用比较复杂一点,而且它本身也有很多插件,建议去它的项目主页看看文档
###8.10 自动刷新(gulp-livereload)###
安装:npm install –save-dev gulp-livereload。
当代码变化时,它可以帮我们自动刷新页面
该插件最好配合谷歌浏览器来使用,且要安装livereload chrome extension扩展插件,不能下载的请自行FQ。
var gulp = require('gulp'),less = require('gulp-less'),livereload = require('gulp-livereload');gulp.task('less', function() {gulp.src('less/*.less').pipe(less()).pipe(gulp.dest('css')).pipe(livereload());
});gulp.task('watch', function() {livereload.listen(); //要在这里调用listen()方法gulp.watch('less/*.less', ['less']);
});
##9. Gulpfile.js##
/*** 组件安装* npm install gulp-util gulp-imagemin gulp-ruby-sass gulp-minify-css gulp-minify-html gulp-load-plugins gulp-jshint gulp-uglify gulp-rename gulp-concat gulp-clean --save-dev* imagemin 图片压缩* rubySass sass压缩* minifyCss css压缩* jshint js检查* uglify js压缩* minifyHtml html压缩* rename 文件重命名* concat 文件合并* clean 清空文件夹* gulp-load-plugins 自动加载*/var gulp = require('gulp');//加载gulp-load-plugins插件,并马上运行它
var plugins = require('gulp-load-plugins')();//默认的任务
/*gulp.task('default',function(){//进行文件监控,文件变动触发执行任务gulp.watch('staticDev/css/!*.css', ['pcCss']);gulp.watch('staticDev/demo/css/!*.css', ['telCss']);gulp.watch('staticDev/js/!*.js', ['pcJs']);gulp.watch('staticDev/demo/js/!*.js', ['telJs']);gulp.watch('staticDev/images/!*', ['pcImg']);gulp.watch('staticDev/demo/images/!*', ['telImg']);
});*/gulp.task('default',['css','js','img']);//css压缩
gulp.task('css', function () {var cssSrc = ['staticDev/css/*.css','!staticDev/css/*.min.css'],cssDst = './static-dev/css/';gulp.src(cssSrc) //要压缩的文件.pipe(plugins.minifyCss()) //压缩.pipe(gulp.dest(cssDst)); //压缩后的文件路径var cssDemoSrc = ['staticDev/demo/css/*.css','!staticDev/demo/css/*.min.css'],cssDemoDst = './static-dev/demo/css/';gulp.src(cssDemoSrc) //要压缩的文件.pipe(plugins.concat('main.css'))//合并文件,文件名为main.css.pipe(plugins.minifyCss()) //压缩.pipe(plugins.rename({ suffix: '.min' })) //改字,加上min标志.pipe(gulp.dest(cssDemoDst)); //压缩后的文件路径
});//JS压缩
gulp.task('js', function () {var jsSrc = ['staticDev/js/*.js','!staticDev/js/*.min.js'],jsDst = 'static-dev/js/';gulp.src(jsSrc).pipe(plugins.uglify()).pipe(gulp.dest(jsDst));var jsDemoSrc = ['staticDev/demo/js/*.js','!staticDev/demo/js/*.min.js'],jsDemoDst = 'static-dev/demo/js/';gulp.src(jsDemoSrc).pipe(plugins.concat('main.jf')).pipe(plugins.uglify()).pipe(plugins.rename({ suffix: '.min' })).pipe(gulp.dest(jsDemoDst));
});//img压缩
gulp.task('img', function () {var imgSrc = 'staticDev/images/*',imgDst = 'static-dev/images/';gulp.src(imgSrc).pipe(plugins.imagemin()).pipe(gulp.dest(imgDst));var imgDemoSrc = 'staticDev/demo/images/*',imgDemoDst = 'static-dev/demo/images/';gulp.src(imgDemoSrc).pipe(plugins.imagemin()).pipe(gulp.dest(imgDemoDst));
});
##10. gulp的API介绍##
使用gulp,仅需知道4个API即可:gulp.task(),gulp.src(),gulp.dest(),gulp.watch()
Gulp的安装与配置相关推荐
- gulp的安装和配置详解
gulp的安装和配置详解 1.安装node.js 先下载一个node.js安装包. 下载完成后双击即可. 打开cmd,命令行输入node -v,回车输出nodejs版本号,表示安装成功. 命令行输入n ...
- gulp的安装与使用
gulp 什么 是gulp? Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭建web服务器 文件保存时自动重载浏览器 使用预处理器如Sass.LESS 优化资源,比如压缩CSS. ...
- Maven安装与配置(最实用!!!)eclipse中配置maven
Maven安装与配置 一.需要准备的东西 JDK Eclipse(本章主要是在eclipse中进行配置maven) Maven程序包 二.下载与安装 1. 前往maven下载最新版的Maven程序: ...
- Portainer 安装与配置
文章目录 Portainer 安装与配置 一.介绍 二.安装使用 1.单机运行 2.基于swarm集群方式运行 Portainer 安装与配置 一.介绍 Portainer 是一个开源.轻量级Do ...
- Myeclipse安装、配置、测试
Myeclipse安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与激活 4.JavaSE开发测试(确保JDK已正确安装) 5.JavaEE开发测试(确保服务器和 ...
- [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二
再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.htm ...
- centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)
1 PHP简介 PHP(PHP: Hypertext Preprocessor的缩写,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Per ...
- java jdk 1.8 安装_下载、安装、配置 java jdk1.8
近期配置react native的开发环境,所以就从配置环境开始.rn的环境配置有那么几项,其中重要的一个就是java jdk(Java Development Kit 的缩写),那么以下就是下载.安 ...
- mysql安装好需要优化配置一下_Mysql的安装、配置、优化
Mysql的安装.配置.优化 安装步骤 1.先单击中的安装文件,如果是win7系统,请选择以管理员的方式运行. 2.大概需要30秒的时间,开始进入安装界面.请先把标红的打勾,好进行下一步的动作. 3. ...
最新文章
- 自然语言处理:网购商品评论情感判定
- 520 情人节 :属于Python 程序员的脱单攻略大合集(视频版)
- PHP正则表达式规则及常用方法整理
- 过滤器(Filter)
- js遍历Object所有属性
- Flask--读取配置参数的方式
- .Net 插入数据MySql数据库,中文乱码解决问题
- 解题报告: LeetCode Max Points on a Line
- matlab 最大熵谱估计,基于Burg算法的最大熵谱估计
- APP设计灵感|仪表盘这样设计,所有信息一目了然!
- servlet多重映射_【简答题】请简要概述什么是Servlet的多重映射,并列出Servlet多重映射的实现方式。...
- Wijmo 5 与Breeze 的组合,及与METRONIC 的集成
- linux crontab 定时任务解析
- db4o php,db4o官方停止支持及面向对象数据库的一些感想
- 软件集成测试采用,集成测试的组成以及流程
- 网络系统高可用是几个9?
- 公关文秘专业要学计算机,2017年公关文秘专业大学排名
- HDU4685:Prince and Princess(二分图匹配+tarjan)
- GitHub中Organization的Member邀请和clone代码库
- 设备管理的3大指标和11个小目标都有啥?
热门文章
- 什么样的人最容易在裁员大潮中被辞退?
- Java操作Kafka收发消息demo
- 计算机与用户交互的界面是什么,交互界面是什么
- python小工具封装_使用 Docker 封装 Python 小工具生成 GitBook PDF
- 数据挖掘复习资料2021.12.15
- 强势破解 Photoshop cc 2015 原版,面对没有脱机激活的解决办法
- js 动态插入html
- 如何让多个版本的Python和谐共处
- 2023年冷门项目,steam搬砖还可以做吗?
- python iot平台,antares-http-简化与Antares IoT平台连接的Python库-Antares Support Team Installation...