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+css在交互上的应用
Jul 18 Javascript
firefox下input type=&quot;file&quot;的size是多大
Oct 24 Javascript
js 获取计算后的样式写法及注意事项
Feb 25 Javascript
判断一个变量是数组Array类型的方法
Sep 16 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
May 08 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
May 10 Javascript
JavaScript简单获取系统当前时间完整示例
Aug 02 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
JS实现线性表的链式表示方法示例【经典数据结构】
Apr 11 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
Jan 26 Javascript
vue基本使用--refs获取组件或元素的实例
Nov 07 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版(1)
2006/10/09 PHP
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
简单理解PHP的面向对象编程方式
2016/05/17 PHP
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python入门_条件控制(详解)
2017/05/16 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
个人素质的自我评价分享
2013/12/16 职场文书
小学美术教学反思
2014/02/01 职场文书
中介业务员岗位职责
2014/04/09 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
python某漫画app逆向
2021/03/31 Python