设为首页 收藏本站
查看: 1371|回复: 0

[经验分享] gulp初涉

[复制链接]

尚未签到

发表于 2017-2-23 11:48:56 | 显示全部楼层 |阅读模式
  1、什么是gulp?
  gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器;它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用它,不仅可以很愉快的编写代码,而且大大提高我们的工作效率。
  gulp是基于Nodejs的自动任务运行器, 它能自动化地完成 前端代码的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。
  2、什么是流?
  流,流水,把文件比作河流,那么一条河流流出,另一条河流流进,gulp对于文件流的操作就是这样,一个操作的输出结果作为另一个操作的输入,像这样
DSC0000.png

  这种操作有点类似jQuery的链式操作:$("").html("gg").css({}).parent().find("a").……;在使用流的时候,gulp去除了中间文件,只将最后的输出写入磁盘,整个过程因此变得更快。
  3、gulp的安装
  gulp基于node环境,首先确保安装了node
DSC0001.png

  安装了node,npm[(node package manager)nodejs的包管理器,用于node插件管理(包括安装、卸载、管理依赖等)]也自动被装好了
DSC0002.png

  因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,所以最好用淘宝提供的cnpm来安装node插件。
  安装cnpm:http://npm.taobao.org/
DSC0003.png

  安装完后,查看cnpm版本以确保安装成功
DSC0004.png

  接下来就可以安装gulp了,首先以全局方式安装gulp:cnpm install -g gulp
    然后进入桌面demo/bbs2.0/src下面,进入bash环境,用cnpm install gulp 来将gulp安装到当前目录下
   DSC0005.png
  安装成功后,会出现node_modules文件夹,然后通过cnpm init来创建package.json(node项目配置文件:因为node插件包相对来说非常庞大,所以不加入版本管理,将配置信息写入package.json并将其加入版本管理,其他开发者对应下载即可)
DSC0006.png

  一路回车下去,会生成package.json文件到当前文件夹,此时尝试去用gulp来启动gulp,会发现会报错
DSC0007.png

  根据报错信息,我们需要建一个gulpfile.js文件
DSC0008.png

  然后再运行gulp
DSC0009.png

  会发现打印出了我们需要的“ok”,到这里gulp基本就可以正常工作了。
  4、gulp常用插件使用
  1)压缩合并文件
  新建一个index.html文件
DSC00010.png

  在js目录下新建两个js文件
DSC00011.png

DSC00012.png

  编辑gulpfile文件。如下:
DSC00013.png

  由于我们用了gulp-uglify,gulp-concat两个插件,所以我们得先安装这两个插件到当前目录
DSC00014.png

  当安装插件的时候用--save-dev添加到package.json里面后,我们可以查看package.json中是否成功写入了该文件
DSC00015.png

  OK,有了,那继续安装gulp-concat到目录即可,安装完成后,我们点开node_modules,也会发现成功安装了该插件,现在我们来启动gulp
DSC00016.png

  OK,没报错,那就说明成功了,接下来查看文件,发现src下面多了我们要压缩合并的all.min.js文件
DSC00017.png

  2)gulp-sass
  要安装sass,首先得安装ruby,进入sass教程
DSC00018.png

  点击安装,就会给出怎么样安装sass,以及安装ruby
DSC00019.png

  ruby安装成功后,查看ruby版本
DSC00020.png

  成功后通过gem来安装sass
DSC00021.png

  如果需要用compass(compass和sass关系相当于jQuery和js)的话,顺便把compass装上
DSC00022.png

  这里需要注意的是gem源的问题,会导致装不上:会报错:SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: ce rtificate verify failed 的错误。可以把gem源换成https://ruby.taobao.org/,如果还是不行,再换成http://gems.ruby-china.org/,再不行就人品问题了
  接下来用compass create来创建sass项目
DSC00023.png

  创建成功后会自动生成sass,stylesheets,config.rb三个文件
  打开sass里面的任意文件,编辑
DSC00024.png

  然后编辑gulpfile
DSC00025.png

  然后将gulp-sass,gulp-compass安装到当前目录
DSC00026.png

  启动gulp后,查看stylesheets里面对应的文件
DSC00027.png

  好了,sass已经成功编译成了css
  3)通过gulp-minify-css来压缩css
DSC00028.png

DSC00029.png

  启动gulp后
DSC00030.png

  4)使用gulp-load-plugins来帮我们加载插件
  gulp-load-plugins这个插件能自动帮你加载package.json文件里的gulp插件
DSC00031.png

  我们只需要在gulpfile里面require('gulp-load-plugins')();
DSC00032.png

  下面只需要用plugin.**就可以了(多个单词用驼峰命名)
DSC00033.png

  5)gulp-imagemin和imagemin-pngquant压缩图片
  6)gulp-livereload来自动刷新网页
  首先安装gulp-livereload:cnpm install gulp gulp-livereload,这里以压缩HTML和编译压缩sass为列
  然后再gulpfile里面
DSC00034.png

  要成功实现无刷新
  1、还需要chrome插件livereload的支持,翻下墙吧
  2、在服务器环境下打开网页,tomcat,wamp,http-server(cnpm install http-server -g)都可以
  然后打开网页
DSC00035.png

  点击黑圈成我这样,然后修改HTML,或者sass,代码,浏览器就会自动刷新,~~
  上述列子源码:https://github.com/dothin/gulp-test(node_modules文件被我压缩了)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346209-1-1.html 上篇帖子: 想成为前端工程师?希望读完这篇文章能对你有所帮助。 下篇帖子: 项目演化系列--移动端开发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表