知识准备先了解chalk,什么是chalkchalk【https://github.com/chalk/chalk】是终端字符串颜色显示chalk用法安装$npminstallchalk常用用法基本用法constchalk=require('chalk')console.log(chalk.blue('Helloworld!'));普通字符串组合log(chalk.blue('Hello')+'World'+chalk.red('!'));链调用日志(chalk.blue.bgRed.bold('Helloworld!'));嵌套样式log(chalk.red('Hello',chalk.underline.bgBlue('world')+'!'));多参数传入log(chalk.blue('Hello','World!','Foo','bar','biz','baz'));ES6模板字符串日志(`CPU:${chalk.red('90%')}RAM:${chalk.green('40%')}DISK:${chalk.yellow('70%')}`);ES6标签模板字符串日志(chalk`CPU:{red${cpu.totalPercent}%}RAM:{green${ram.used/ram.total*100}%}DISK:{rgb(255,131,0)${disk.used/disk.total*100}%}`);log(chalk.keyword('orange')('Yayfororangecoloredtext!'));登录支持rgb颜色的终端处理器(chalk.rgb(123,45,67).underline('Underlinedreddishcolor'));log(chalk.hex('#DEADED').bold('Boldgray!'));styleapiModifiersresetbolddimitalic(不广泛支持)underlineinversehiddenstrikethrough(Notwidelysupported)visible(Textisemittedonlyifenabled)Colorsblackredgreenyellowblue(OnWindowsthebrightversionisusedsincenormalblueisillegible)magentacyanwhitegray("brightblack")redBrightgreenBrightyellowBrightblueBrightmagentaBrightcyanBrightwhiteBrightBackgroundcolorsbgBlackbgRedbgGreenbgYellowbgBluebgMagentabgCyanbgWhitebgBlackBrightbgRedBrightbgGreenBrightbgYellowBrightbgBlueBrightbgMagentaBrightbgCyanBrightbgWhiteBrightgulp-utilloggutil.log方法与console的区别是:gutl.log是基于chalk的实例,即可以在终端显示颜色。gutil.log支持传入多个参数,打印结果会将多个参数用空格连接起来。gutil.log会有时间戳颜色可以是要打印的内容ShadingreplaceExtension(path,newExtension)替换路径中的文件扩展名isStream(obj)如果对象是流,返回trueisBuffer(obj)如果对象是二进制data,returntruetemplate(string[,data])和lodash的字符串模板一样[https://www.html.cn/doc/lodas...]gutil.template('test<%=name%><%=file.path%>',opt)newFile(obj)是一个vinly对象varfile=newgutil.File({base:path.join(__dirname,'./fixtures/'),cwd:__dir名称,路径:path.join(__dirname,'./fixtures/test.coffee')});noop()返回一个流,它只传递数据//gulp应该这样调用://$gulp--typeproductiongulp.task('scripts',function(){gulp.src('src/**/*.js').pipe(concat('script.js')).pipe(gutil.env.type==='production'?uglify():gutil.noop()).pipe(gulp.dest('dist/')));});buffer(cb)这类似于es.wait,但它不是Bufferstextintoastring,而是将任何内容放入数组(这对文件对象很有用)返回一个流,可以是管道。流在传递给它的流结束后发出数据事件。data将与传递给回调的数组相同。回调是可选的,并接收两个参数:错误和数据gulp.src('stuff/*.js').pipe(gutil.buffer(function(err,files){}));newPluginError(pluginName,message[,options])pluginName是指插件的模块名称message可以是一个字符串或一个存在的错误。默认情况下,不显示堆栈。如果您认为堆栈对您的错误很重要,请将options.showStack设置为true。如果您在消息中传递错误,将从中拉出堆栈,否则将创建一个。请注意,如果传入自定义堆栈字符串,则需要包含此消息。错误属性将包含在err.toString()中。可以通过在选项中包含{showProperties:false}来省略。以下是可接受的实例化:varerr=newgutil.PluginError('test',{message:'somethingbroke'});varerr=newgutil.PluginError({plugin:'test',message:'somethingbroke'});varerr=newgutil.PluginError('test','somethingbroke');varerr=newgutil.PluginError('test','somethingbroke',{showStack:true});varexistingError=newError('OMG');varerr=newgutil.PluginError('test',existingError,{showStack:true});gulp-util迁移计划原地址:https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5https://www.npmjs.com/package/fancy-log使用这些步骤,可以帮助插件作者从一饮而尽。运行npmlsgulp-util以获取依赖它的插件列表。对于每个依赖插件,运行npmissues{PLUGINNAME}将打开他们的问题和解决方案。为了删除和替换gulp-util,请使用以下API替换打开问题或拉取请求:gutil.File=>https://www.npmjs.com/package...gutil.replaceExtension=>The.extnameproperty在Vinyl对象上或https://www.npmjs.com/package...gutil.colors=>https://www.npmjs.com/package...gutil.date=>https://www.npmjs。com/package...gutil.log=>https://www.npmjs.com/package...gutil.template=>https://www.npmjs.com/package...gutil.env=>https://www.npmjs.com/package...gutil.beep=>https://www.npmjs.com/package...gutil.noop=>https://www.npmjs.com/package...gutil。isStream=>在Vinyl对象上使用.isStream()方法gutil.isBuffer=>在Vinyl对象上使用.isBuffer()方法gutil.isNull=>在Vinyl对象上使用.isNull()方法gutil.linefeed=>使用字符串'n'在你的codegutil.combine=>https://www.npmjs.com/package...gutil.buffer=>https://www.npmjs.com/package...gutil.PluginError=>https://www.npmjs.com/package…
