gulp安装以及打包合并的方法教程


Posted in Javascript onNovember 19, 2017

前言

gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率。

安装、打包合并

1.安装node.js  下载地址: http://nodejs.cn/

打开node.js 命令行,输入: node  -v ,有版本号,则正确安装。

2.安装淘宝镜像 :命令行输入 :

npm install -g cnpm --registry=http://registry.npm.taobao.org

目的:使下在速度更快。

3.全局安装gulp

cnpm install --global gulp

4.创建目录,打开F盘,创建gulp文件夹。

命令行输入 :

f:

cd gulp

5.安装本地gulp

cnpm install --save-dev gulp

6.创建package.json文件

cnpm init

一路enter确定就行

7.web编辑器打开此gulp目录,如hbuilder、webstorm。

在gulp目录下创建gulpfile.js文件,gulp运行的入口

gulp安装以及打包合并的方法教程

8.确定何种打包压缩,html、js、css、img

9.js打包

var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
 
gulp.task('default',function(){ 
 gulp.src('js/*.js') // 路径问题:gulpfile.js为路径的起点。此路径表示js文件下的所有js文件。
 .pipe(concat('all.js')) //合并成的js文件名称
 .pipe(uglify()) //压缩
 .pipe(gulp.dest('build')); //打包压缩在build目录下。
});

10.运行;node.js输入

gulp

会有报错,提示 gulp-concat组件没有安装。开始安装 :cnpm install gulp-concat --save-dev

再次运行 :gulp

再次报错,提示gulp-uglify组件没有安装。开始安装 :cnpm install gulp-uglify --save-dev

再次运行 :gulp

。。。。。。。。。。。。。。。

 成功之后会

gulp安装以及打包合并的方法教程

这里会看到 finished ‘default' ,‘default' 就是gulp.task任务开始的默认入口。如果创建多个task任务,且修改任务名称如:

var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
 
gulp.task('default',function(){ 
 gulp.src('js/*.js') // 路径问题:gulpfile.js为路径的起点。此路径表示js文件下的所有js文件。
 .pipe(concat('all.js')) //合并成的js文件名称
 .pipe(uglify()) //压缩
 .pipe(gulp.dest('build')); //打包压缩在build目录下。
})
 
//css 打包压缩
var autoprefix = require('gulp-autoprefixer');
var minifyCSS = require('gulp-minify-css');
 
gulp.task('style', function() { //task 任务名称为style
 

gulp.src('.css/*.css')
 

.pipe(concat('styles.css'))
 

.pipe(autoprefix('last 2 versions'))
 

.pipe(minifyCSS())
 

.pipe(gulp.dest('styles'));
 

});

重新运行 : gulp

结果:

gulp安装以及打包合并的方法教程

会发现只运行了 default的task任务。因为这是唯一默认的gulp执行入口。

修改如下

var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
 
gulp.task('js',function(){ 
 gulp.src('js/*.js') // 路径问题:gulpfile.js为路径的起点。此路径表示js文件下的所有js文件。
 .pipe(concat('all.js')) //合并成的js文件名称
 .pipe(uglify()) //压缩
 .pipe(gulp.dest('build')); //打包压缩在build目录下。
})
 
//css 打包压缩
var autoprefix = require('gulp-autoprefixer');
var minifyCSS = require('gulp-minify-css');
 
gulp.task('style', function() { //task 任务名称为style
 

gulp.src('.css/*.css')
 

.pipe(concat('styles.css'))
 

.pipe(autoprefix('last 2 versions'))
 

.pipe(minifyCSS())
 

.pipe(gulp.dest('styles'));
 

});

<br>gulp.task('default',function(){
 gulp.run(['js','style']); //这里开始执行多个task任务
});

如果遇到什么组件没有安装的话,想你应该知道怎么操作了。

11.图片压缩

var imagemin = require('gulp-imagemin');
gulp.task('img', function() {
 return gulp.src('imgs/*.png')
 .pipe(imagemin())
 .pipe(gulp.dest('miniImg'));
});

12.html压缩

var htmlmin = require('gulp-htmlmin');
gulp.task('html', function() {
 return gulp.src('../*.html')
 .pipe(htmlmin({collapseWhitespace: true}))
 .pipe(gulp.dest('../'));
});

13.路径问题自己修改

gulp打包js/css时合并成一个文件时的顺序解决

1、可以使用插进gulp-order。

2、可以这样的写法:

return gulp.src(['js/common.js','js/**/*.js'])
.pipe(concat('build.js'))//合成到一个js
.pipe(gulp.dest(buildBasePath+'js'))//输出到js目录
.pipe(uglify())//压缩js到一行
.pipe(concat('build.min.js'))//压缩后的js
.pipe(gulp.dest(buildBasePath+'js'));//输出到js目录

总结

以上就是这篇文章的全部内容了,只能说入个门,还有更多的功能。多看高人博客吧或官网,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript优先加载笔记代码
Sep 30 Javascript
JavaScript CSS修改学习第一章 查找位置
Feb 19 Javascript
把字符串按照特定的字母顺序进行排序的js代码
Jan 28 Javascript
Javascript的闭包详解
Dec 26 Javascript
javascript实现时间格式输出FormatDate函数
Jan 13 Javascript
原生js实现百叶窗效果及原理介绍
Apr 12 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
Angular中$state.go页面跳转并传递参数的方法
May 09 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 Javascript
js + css实现标签内容切换功能(实例讲解)
Oct 09 Javascript
JavaScript函数重载操作实例浅析
May 02 Javascript
js判断鼠标移入移出方向的方法
Jun 24 Javascript
js实现rem自动匹配计算font-size的示例
Nov 18 #Javascript
如何编写一个完整的Angular4 FormText 组件
Nov 18 #Javascript
Angular中支持SCSS的方法
Nov 18 #Javascript
VUE element-ui 写个复用Table组件的示例代码
Nov 18 #Javascript
jQuery实现checkbox的简单操作
Nov 18 #jQuery
浅谈Emergence.js 检测元素可见性的 js 插件
Nov 18 #Javascript
基于jquery实现五星好评
Nov 18 #jQuery
You might like
把77A收信机改造成收音机
2021/03/02 无线电
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
解析PHP可变函数的经典用法
2013/06/20 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
动态加载js的几种方法
2006/10/23 Javascript
JavaScript 学习点滴记录
2009/04/24 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
北大研究生linux应用求职信
2013/10/29 职场文书
自主招生自荐信指南
2014/02/04 职场文书
毕业自我鉴定怎么写
2014/03/25 职场文书
小学教师培训方案
2014/06/09 职场文书
团日活动总结报告
2014/06/25 职场文书
小学开学标语
2014/07/01 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers