Gulp探究折腾之路(I).docx
《Gulp探究折腾之路(I).docx》由会员分享,可在线阅读,更多相关《Gulp探究折腾之路(I).docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Gulp折腾之初探折腾之战略上的藐视回过头看Gulp的折腾历程,使用还是非常简易的。初步入门资料可参考这 里。所以战略上一定要藐视她;当然战术上要给予足够的重视。毕竟要依赖 她以及其他各种插件and编辑器等实现前端工程化,组件化,模块化,便捷化 是一个蛮复杂的过程。总之,折腾伊始需要自信就好,折腾过程带着耐心就 好。譬如,想借助gulp压缩美化下js代码,写如下代码于gulpfile.js即可:var gulp 二 require (gulp),uglify = require(gulp-uglify);var gNeedDealJsFile =js ; /javascrip 代码存放路径va
2、r outPut = /build/”; 指定输出文件存放目录 gulp, task, scripts, function() return gulp, src(gNeedDealJsFile) .pipe(uglifyO) , pipe (rename( suffix: .min ).pipe (gulp, dest(outPut); );在gulpfile.js同级目录运行gulp scripts即可;PS:当然前提是您已经安装了 nodejs ,并且使用npm安装了代码中需要的插件gulp和gulp-uglify与本 地。名叫gulp-concat的模块,找到这个模块后把该的目录链接到
3、-/work/*/gulpTest/node_modules/gulp-concat 这个目录上来。如此,在 此工程小工程中的gulpfile.js中也可以加以使用了。当然,npm link也支持多 个参数:npm link gulp gulp-concat gulp-rename gulp-uglify gulp-minify-css gulp-jshint gulp-cachedPS:这样使用时,需要注意忽略掉node_modules目录下的js/css代码, gulp.src参数数组中可以加入!node_modules/*/*. +(js|css)以过滤之。注:即便使用 npm link
4、 感觉也不是一个特别简洁的方案。并且在使用的时候还 遇到了些许问题:之前有提问于segmentFaultgulp如何管理多工程?以及 V2EX gulp如何管理多工程;热心码友也提出了一些可行的建议,比方:配置 多个task ,或者采用fbi ,或者采用nodejs中的NODE_PATHnodejs中的 NODE_PATH等等;此处有待进一步学习&折腾&择决;(如有简洁方案,欢求指 点,拜谢)。gulp-util幸之助幸亏有gulp-util之协助:在折腾的过程中,难免不会出现奇奇怪怪的问题; 然而gulp本身的报错提示机制真心让新手的我蛋蛋的忧伤:比方在折腾的过 程中压缩JS代码就出现Ugl
5、ify throws Parse error;可是提示却幸好stackoverflowllglify throws Parse error一个问答中,大牛给予了明灯般 的指导:引入gulp-util;原话如下:uglify will parse the script content before minifying it. I suspect that one ofthe browserify source maps are being included in the stream down to uglify. Anyway to find the problem you can use g
6、ulp-util zs log method to handle uglify s exceptions. Example:. var gulpUtil = requireCgulp-util); gulp.taskCscripts, function(). .pipe(sourcemaps.init(loadMaps: true) ,pipe(uglify().on(error, gulplltil.log) / notice the error event here .pipe(sourcemaps.write(./) .pipe(gulp.dest(./web/js););实时刷新页面g
7、ulp-livereload 模块gulp-1 ivereload模块用于自动刷新浏览器,反映出源码的最新变化。它除了 模块以外,还需要在浏览器中安装插件,用来配合源码变化。LiveReload结合了浏览器扩展(包括Chrome extension ),在发现文件被修 改时会实时更新网页。它可以和gulp-watch插件或者前面描述的gulp- watch()函数一起使用。下面有一个gulp-livereload仓库中的README文件 提到的例子:var gulp = require。gulp), less = require。gulp-less), livereload = require
8、( gulp-livereload), watch = require (? gulp-watch);gulp. task(,less,, function() gulp. src( less/*. less,) , pipe (watch () pipe (less ().pipe (gulp, dest ( css,).pipe (livereload(); );这会监听到所有与less/*.less相匹配的文件的变化。一旦监测到变化,就会生 成css并保存,然后重新加载网页.BrowserSync安装BrowserSync您可以选择从Node.js的包管理(NPM )库中 安装 Brow
9、serSynco翻开一终端窗口 ,运行以下命令:npm install -g browser-sync您告诉包管理器下载BrowserSync文件,并在全局下安装它们,您可以在所有 工程(任何目录)中使用。当然您也可以结合gulpjs或gruntjs构建工具来使用,在您需要构建的工程里 运行下面的命令:npm install -save-dev browser-sync启动BrowserSync静态网站如果您想要监听.css文件,您需要使用服务器模 式。BrowserSync将启动一个小型服务器,并提供一个URL来查看您的网 站。/ -files 路径是相对于运行该命令的工程(目录)brows
10、er-sync start -server -files css/*.css如果您需要监听多个类型的文件,您只需要用逗号隔开。例如我们再加入一个html文件/ -files路径是相对于运行该命令的工程(目录)browser-sync start 一一server 一一files css/*css, *.html/如果你的文件层级比拟深,您可以考虑使用*(表示任意目录)匹配,任意目录下 任意.css或.html文件。browser-sync start 一一server 一一files */*css,注:在该文件下运行命令,默认需要启动网站文件:index.htmL 动态网站如果您已经有其他本地
11、服务器环境PHP或类似的,您需要使用例模式。BrowserSync将通过代理URL(localhost:3000)来查看您的网站。/主机名可以是ip或域名browser-sync start -proxy 主机名 css/*. css在本地创立了一个PHP服务器环境,并通过绑定B来访问本地 服务器,使用以下命令方式,Browsersync将提供一个新的地址 localhost:3000来访问B ,并监听其css目录下的所有css文 件。browser-sync start 一一proxy BrowserSync. cn,z css/*. css参考博文:BrowserSync ,迅捷从免F5开
12、始。注:使用的时候纯路径比方B尚好着,然而地址后面带一堆 参数时候,就会遇到些问题;暂时还未搞明白以解决之,特注之,待弄懂!前端组件html模板化(gulptlp2mod)摒弃了 gulp.runQgulp的API很简单z常用的也就几个:watch, task, dest, src ;目前已经摒弃T run方法。创立Default Task:注册缺省任务gulp, task( default,, function() gulp. run C jshint,, scripts,);gulp. watch(workspace, function() gulp. run( jshint,, scri
13、pts,);) );gulp.runQ has been deprecated. Use task dependencies or gulp.watch task triggering instead.可以根据 gulp.task(namef deps, fn)特性写法替代之。deps : (Array)一个包含任务列表的数组,这些任务会在你当前任务运行之前完成。注意:你的任务是否在这些前置依赖的任务完成之前运行了 ?请一定要确保你所依赖的任务列表中的任 务都使用了正确的异步执行方式:使用一个callback ,或者返回一个promise或streamo 创立 Default Task:注册缺
14、省任务 gulp.task(defaultz jshint, scripts, watch);折腾 gulp.srcQGulp使用node-glob来从你指定的glob里面获取文件,这里列举下面的例子来阐述,方便大家理解:js/app.js精确匹配文件js/jM仅匹配js目录下的所有后缀为.js的文件js:js匹配js目录及其子目录下 所有后缀为.js的文件!js/app.js从匹配结果中排除js/app.js ,这种方法在你想要匹配除了特殊文件之外 的所有文件时非常管用*.+(js|css)匹配根目录下所有后缀为.js或者.css的文件止矽卜,Gulp也有很多其 他的特征,但并不常用。如果你
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Gulp 探究 折腾
限制150内