#Gulp的安装与配置#

标签(空格分隔): 工具


  1. 下载nodejs安装包
  2. 安装Nodejs
  3. 测试
  4. 配置npm的全局路径
  5. 全局安装gulp
  6. 本地安装gulp
  7. gulp的实施与使用
  8. 安装相关插件
  9. Gulpfile.js
  10. 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的安装与配置相关推荐

  1. gulp的安装和配置详解

    gulp的安装和配置详解 1.安装node.js 先下载一个node.js安装包. 下载完成后双击即可. 打开cmd,命令行输入node -v,回车输出nodejs版本号,表示安装成功. 命令行输入n ...

  2. gulp的安装与使用

    gulp 什么 是gulp? Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭建web服务器 文件保存时自动重载浏览器 使用预处理器如Sass.LESS 优化资源,比如压缩CSS. ...

  3. Maven安装与配置(最实用!!!)eclipse中配置maven

    Maven安装与配置 一.需要准备的东西 JDK Eclipse(本章主要是在eclipse中进行配置maven) Maven程序包 二.下载与安装 1. 前往maven下载最新版的Maven程序: ...

  4. Portainer 安装与配置

    文章目录 Portainer 安装与配置 一.介绍 二.安装使用 1.单机运行 2.基于swarm集群方式运行 Portainer 安装与配置 一.介绍 ​ Portainer 是一个开源.轻量级Do ...

  5. Myeclipse安装、配置、测试

    Myeclipse安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与激活 4.JavaSE开发测试(确保JDK已正确安装) 5.JavaEE开发测试(确保服务器和 ...

  6. [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二

    再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.htm ...

  7. centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)

    1 PHP简介     PHP(PHP: Hypertext Preprocessor的缩写,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Per ...

  8. java jdk 1.8 安装_下载、安装、配置 java jdk1.8

    近期配置react native的开发环境,所以就从配置环境开始.rn的环境配置有那么几项,其中重要的一个就是java jdk(Java Development Kit 的缩写),那么以下就是下载.安 ...

  9. mysql安装好需要优化配置一下_Mysql的安装、配置、优化

    Mysql的安装.配置.优化 安装步骤 1.先单击中的安装文件,如果是win7系统,请选择以管理员的方式运行. 2.大概需要30秒的时间,开始进入安装界面.请先把标红的打勾,好进行下一步的动作. 3. ...

最新文章

  1. 自然语言处理:网购商品评论情感判定
  2. 520 情人节 :属于Python 程序员的脱单攻略大合集(视频版)
  3. PHP正则表达式规则及常用方法整理
  4. 过滤器(Filter)
  5. js遍历Object所有属性
  6. Flask--读取配置参数的方式
  7. .Net 插入数据MySql数据库,中文乱码解决问题
  8. 解题报告: LeetCode Max Points on a Line
  9. matlab 最大熵谱估计,基于Burg算法的最大熵谱估计
  10. APP设计灵感|仪表盘这样设计,所有信息一目了然!
  11. servlet多重映射_【简答题】请简要概述什么是Servlet的多重映射,并列出Servlet多重映射的实现方式。...
  12. Wijmo 5 与Breeze 的组合,及与METRONIC 的集成
  13. linux crontab 定时任务解析
  14. db4o php,db4o官方停止支持及面向对象数据库的一些感想
  15. 软件集成测试采用,集成测试的组成以及流程
  16. 网络系统高可用是几个9?
  17. 公关文秘专业要学计算机,2017年公关文秘专业大学排名
  18. HDU4685:Prince and Princess(二分图匹配+tarjan)
  19. GitHub中Organization的Member邀请和clone代码库
  20. 设备管理的3大指标和11个小目标都有啥?

热门文章

  1. 什么样的人最容易在裁员大潮中被辞退?
  2. Java操作Kafka收发消息demo
  3. 计算机与用户交互的界面是什么,交互界面是什么
  4. python小工具封装_使用 Docker 封装 Python 小工具生成 GitBook PDF
  5. 数据挖掘复习资料2021.12.15
  6. 强势破解 Photoshop cc 2015 原版,面对没有脱机激活的解决办法
  7. js 动态插入html
  8. 如何让多个版本的Python和谐共处
  9. 2023年冷门项目,steam搬砖还可以做吗?
  10. python iot平台,antares-http-简化与Antares IoT平台连接的Python库-Antares Support Team Installation...