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 相关文章推荐
拖拉表格的JS函数
Nov 20 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
Aug 29 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
Sep 21 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
js清空form表单中的内容示例
May 20 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
Dec 31 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
Mar 25 Javascript
第十章之巨幕页头缩略图与警告框组件
Apr 25 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
May 16 Javascript
详解vue使用$http服务端收不到参数
Apr 19 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
使用PHP模拟HTTP认证
2006/10/09 PHP
dedecms模板标签代码官方参考
2007/03/17 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
jquery选择器(常用选择器说明)
2010/09/28 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
JS中数据结构之栈
2019/01/01 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
Python中的作用域规则详解
2015/01/30 Python
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
浅析Python中字符串的intern机制
2020/10/03 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
轻松制作精彩视频:Animoto
2018/09/19 全球购物
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
运动会入场词60字
2014/02/15 职场文书
《满井游记》教学反思
2014/02/26 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
教师遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
代收款委托书范本
2014/10/01 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle