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 chrome浏览器判断代码
Mar 28 Javascript
!DOCTYPE声明对JavaScript的影响分析
Apr 12 Javascript
新浪微博字数统计 textarea字数统计实现代码
Aug 28 Javascript
Javascript Request获取请求参数如何实现
Nov 28 Javascript
使用CamanJS在Web页面上处理图像的技巧
Aug 18 Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 Javascript
React应用中使用Bootstrap的方法
Aug 15 Javascript
Bootstrap table使用方法汇总
Nov 17 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
Dec 06 Javascript
vue如何判断dom的class
Apr 26 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
Apr 15 Javascript
微信小程序实现蒙版弹出窗功能
Sep 17 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
ADODB的数据库封包程序库
2006/12/31 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
jquery获取当前点击对象的value方法
2014/02/28 Javascript
javascript的push使用指南
2014/12/05 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Python函数式编程指南(四):生成器详解
2015/06/24 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
python字符串的index和find的区别详解
2020/06/20 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
Linux如何为某个操作添加别名
2015/02/05 面试题
如何写一份好的自荐信
2014/01/02 职场文书
经典广告词大全
2014/03/14 职场文书
青春奉献演讲稿
2014/05/08 职场文书
学校春季防火方案
2014/06/08 职场文书
在校实习生求职信
2014/06/18 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫