Gulp的安装配置过程和一些小坑

  谈谈gulp。

  项目尾声,老师叫我去熟悉一下grunt前端自动化工具,第一次知道这种东西,我就查各种资料啊,发现grunt已经‘过时’了,大家都用gulp和webpack。我当然选择了配置最简单的gulp=-=

  gulp是基于Nodejs的自动任务运行器,基本流程就是先安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置文件gulpfile.js并写好配置信息(定义gulp任务),最后通过命令提示符运行gulp(webstorm神器更简单)。

  安装nodejs就不说了,一步步默认,打开cmd控制台,直接查看node版本,检测是否安装成功

  

  全局安装gulp,出现warn不要紧,等他慢慢转,表示正在联网下载...

npm install -g gulp

  全局安装完成后,通过cmd进入项目目录创建package.json文件,这是基于nodejs项目必不可少的配置文件,它是存放在项目根目录的普通json文件:

  

  直接在后面加上 -y 会自动生成,省去一步步的选择填空操作。

  接着在cmd项目目录下开始本地安装gulp各种插件,在这里找你需要的插件。有四个是用得最多的,必备的

    1、语法检查   (gulp-jshint

    2、合并文件   (gulp-concat

    3、压缩代码   (gulp-uglify

    4、文件重命名   (gulp-rename

  就拿gulp-jshint举例吧,在cmd项目目录下输入

npm install gulp-jshint --save-dev

  --save-dev 是可以省掉你手动修改package.json文件的步骤,正常情况下得连同版本号手动将他们添加到模块配置文件package.json中的依赖里

  

  安装配置完成,要开始写代码啦。

  在项目目录下新建Gulpfile.js文件,gulp有五种方法:taskrunwatchsrc,和dest.

//引入组件 1 var gulp = require(‘gulp‘);
 2
 3 var jshint = require(‘gulp-jshint‘);
 4 var concat = require(‘gulp-concat‘);
 5 var uglify = require(‘gulp-uglify‘);
 6 var rename = require(‘gulp-rename‘);
 7 var clean = require(‘gulp-clean‘);
 8 var minify_css = require(‘gulp-minify-css‘);
 9 //创建任务
10 gulp.task(‘hint‘,function(){
11   return gulp.src([‘a.js‘, ‘b.js‘, ‘c.js‘])
12     .pipe(jshint())
13     .pipe(jshint.reporter(‘default‘));
14 });
15
16 gulp.task(‘script‘, function () {
17   return gulp.src([‘a.js‘, ‘b.js‘, ‘c.js‘])
18     .pipe(concat(‘ABC.js‘))
19     .pipe(gulp.dest(‘application‘))
20     .pipe(uglify())
21     .pipe(rename({suffix: ‘.min‘}))
22     .pipe(gulp.dest(‘application‘));
23 });
24
25 gulp.task(‘css1‘, function () {
26   return gulp.src(‘dist/css/d.css‘)
27     .pipe(minify_css())
28     .pipe(rename({suffix: ‘.min‘}))
29     .pipe(gulp.dest(‘application‘));
30 });
31
32 gulp.task(‘css2‘, function () {
33   return gulp.src([‘dist/css/e.css‘, ‘dist/css/f.css‘])
34     .pipe(concat(‘EF.css‘))
35     .pipe(gulp.dest(‘application‘))
36     .pipe(minify_css())
37     .pipe(rename({suffix: ‘.min‘}))
38     .pipe(gulp.dest(‘application‘));
39 });
40
41 gulp.task(‘watch‘, function () {
42   gulp.watch([‘a.js‘, ‘b.js‘, ‘c.js‘], [‘script‘]);
43   gulp.watch(‘dist/css/d.css‘, [‘css1‘]);
44   gulp.watch([‘dist/css/e.css‘, ‘dist/css/f.css‘], [‘css2‘]);
45 });
46
47 gulp.task(‘clean‘, function () {
48   return gulp.src(‘application‘, {read: false})
49     .pipe(clean());
50 });
51
52 gulp.task(‘default‘, [‘clean‘], function () {
53   gulp.run(‘hint‘,‘script‘, ‘css1‘, ‘css2‘, ‘watch‘);
54 });

  代码很简单,也很容易理解,网上也有很多教程,这部分就不多说了,来谈谈一点小小的坑。

  代码敲完,需要回到命令行,运行gulp。直接输入gulp,就开始运行,期间会报一些error,不要紧张,指的是js文件里一些语法错误,无伤大雅,成功创建出压缩文件才是最终目的。

  那么如果需要修改代码,必须一直把cmd控制台保持打开状态,否则无法执行watch操作。第一点坑,就是编辑器的自动保存功能,一行代码如果写的不顺,或是中途打岔,比如‘$scope.’,还没接着写完,编辑器自动保存的功能会使jshint检查出语法错误,导致gulp的停止运行。如果用的是webstrom编辑器的,可以不用每次打开命令行,右键选中gulpfile.js,show gulp tasks,再点击default即可。

  

  操作过程中,我遇到的第二个坑就是clean插件的使用问题上。最开始我写的代码不是像上面那样,watch任务是直接在script,css任务最后执行,最后两块写的是

 gulp.task(‘default‘, [‘clean‘, ‘less‘, ‘images‘, ‘js‘, ‘watch‘]);

  之后怎么都不能好好工作,原来,在default里面的任务是同步操作的!!是会出现边编译边删除的的情况的!!还是一步一步来,不要想着一步到位。先创建watch任务,再创建clean,最后default的时候,不要把clean写在run里面,配置一个异步就搞定了。

  这是修改编辑器(webstrom)自动保存的:

  

  好了,好了。

  第一次写博客,很多地方都得自己再搞清楚一遍才敢往上写,对自己提升还是很有帮助的。毕竟自己还很菜,写的不对的,希望多批评。

时间: 2024-10-13 20:33:36

Gulp的安装配置过程和一些小坑的相关文章

openvpn安装配置过程

前言 之前为了方便远程办公时访问公司的内部系统,如:svn.OA.wiki.禅道等等:通通在防火墙上做了端口映射.然后 有个内部系统被黑了,各种弱口令没办法.果断关闭端口映射,看来还是得搭建个VPN服务器,vpn设备感觉大材小用.马上就想到了开源的openvpn, 下面就来介绍openvpn的安装配置过程. openvpn简介 官方网站:https://openvpn.net 打不开请爬墙 openssl原理:http://www.178linux.com/archives/2704 参考书生的

minicom在虚拟机(linux)安装配置过程

1. minicom需要ncurses库的支持,否则安装会有问题. A. 下载ncurses.我选择是ncurses-5.6.tar.gz 下载地址:http://directory.fsf.org/project/ncurses/ B. 解压缩到/opt/ncurses目录下.# tar zxvf ncurses-5.5.tar.gz –C /opt/ncurses C. 到ncurses目录下,配置编译ncurses. 源码安装的三个步骤(configure.make.make instal

游戏服务端pomelo完整安装配置过程

游戏服务端pomelo安装配置 一.安装环境 debian 7.0 amd64 二.安装需要的组件 1.安装nodejs 注:debian下nodejs没有相应的apt包,所以无法用apt-get安装,只能通过nodejs的源码包安装, 这里有比较全的其他系统环境下安装nodejs的方式https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager a.安装所需的组件,python g++ #apt-get i

sonar安装配置过程

1.下载sonarqube(下载社区版不需要许可证),sonarscanner,安装jdk,数据库,本次安装使用jdk1.7+mysql5.7(安装配置过程不详述,自行百度).2.数据库新建数据库sonar.3.解压sonarqube进入conf目录下,sonar.properties添加配置 #数据库地址 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewr

windows 下android react native详细安装配置过程

写在前面: 在网上搜了很多安装配置文档,感觉没有一个真的跟我安装的过程一模一样的,东拼拼西凑凑,总算是装好了,我不会告诉你,断断续续,我花了两天时间...一到黑屏报错就傻眼,幸好在react群里遇到了热心的同行,还有同事的帮助...废话就到这里了,此处只是记录我自己装载的过程,系统环境各种不一样,可能或多或少有差异. 我的电脑,windows7 64位之前已经装了eclipise,java,jdk,所以,有些安装文档上面的java的jdk和c++,我电脑上并不需要. 这里我还是都粘贴上来. 参考

详细到复制粘贴就能完成的java开发软件的安装配置过程

java开发与发布过程中需要安装很多软件,这些软件的安装过程通常不是鼠标双击就能解决的,但也不难,只是很少有人会花精力去记住,我将这些软件的安装过程整理出来,以备参考!整理过程以centos 6.5平台为主,其他linux版本也可以参考 jdk java开发最重要的自然是jdk,就从jdk的安装开始吧(windows安装jdk与linux基本相同) 从oracle官方网站下载jdk安装包:jdk-8u111-linux-x64.rpm 安装前检查是否有系统自带的jdk或已经安装的jdk,如果有的

apache配置过程出现的小问题

详细配置过程不再叙说. 出现的问题: ./configure --prefix=/usr/local/apache    命令后,出现编译错误提示. 如果没有安装gcc,先用 yum -y install gcc    命令安装gcc. 如果出现yum被锁定的提示 等待占用的程序自己停止.......

Gentoo安装配置过程与总结

前些时间在VMware上安装了Gentoo Linux,用了当前最新版的Gentoo,安装过程记录下来了,但一直没有整理到blog上.今天重新整理一下,写出来与大家分享和备用.接触Gentoo不久,对这个版本还不是很熟. 与其他Linux发行版相比,Gentoo确实有其优势的地方,如内核基于源代码编译,可以自动优化与定制,升级方便等! 关于Gentoo发行版的介绍请看:全球最受欢迎的十大Linux发行版(图) Host机环境:Win2008 + VMware 7.1 下载安装包 下载安装 CD

ZABBIX安装配置过程

1.环境描述: redhat 6.5 zabbix 2.4.5 172.30.0.195 2.环境准备: yum install pcre* yum install openssl* yum -y install net-snmp-devel curl-devel yum -y install automake autoconf libtool make yum -y install gcc gcc-c++ glibc yum -y install libmcrypt-devel mhash-d