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 相关文章推荐
3款实用的在线JS代码工具(国外)
Mar 15 Javascript
javascript 获取HTML DOM父、子、临近节点
Jun 16 Javascript
精通JavaScript的this关键字
May 28 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
Jun 07 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
Jul 01 Javascript
js实现图片左右滚动效果
Feb 27 Javascript
将angular-ui的分页组件封装成指令的方法详解
May 10 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
May 10 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
Nov 22 Javascript
浅谈es6 javascript的map数据结构
Dec 14 Javascript
微信小程序实现多选功能
Nov 04 Javascript
手动实现vue2.0的双向数据绑定原理详解
Feb 06 Vue.js
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知道与问问的采集插件代码
2010/10/12 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
php常用的工具开发整理
2019/09/26 PHP
基于jQuery的自动完成插件
2011/02/03 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
基于JavaScript实现控制下拉列表
2020/05/08 Javascript
python列表list保留顺序去重的实例
2018/12/14 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
详解Django将秒转换为xx天xx时xx分
2019/09/27 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
自荐信写法介绍
2014/01/25 职场文书
新年晚会主持词
2014/03/24 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
2015年纪委工作总结
2015/05/13 职场文书
幽灵公主观后感
2015/06/09 职场文书
运动会广播稿300字
2015/08/19 职场文书
学习党章心得体会2016
2016/01/15 职场文书
spring注解 @PropertySource配置数据源全流程
2022/03/25 Java/Android
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL