千呼万唤始出来,犹抱琵琶半遮面。
在这一天发布的日子里面,其实 gulp
一口气是出了四个版本的:
v4.0.0-alpha.1
v4.0.0-alpha.2
v4.0.0-alpha.3
v4.0.0
前面三个是打了 pre-release
的标签的。
更新记录这里就不赘述了,简单来说一下发布带来的新特性吧。
首先是 API 的变化,新增了两个非常重要的改进:gulp.parallel
和 gulp.series
。这一点我之前在个人日志项目里面也进行过记录,当时的说明还是略显简陋的。
gulp.parallel
是用于执行并联任务的,相对的 gulp.series
则用于执行串联任务。
gulp
任务的处理内核由之前的 orchestrator
迁移到为 gulp
而生的 undertaker
。迁移之后的处理方式更加高效便捷。支持的任务命名方式也灵活许多。
gulp.task
调整,删除之前第二个任务列表的参数,前置任务之类的全部并入到上面的两个 API 中进行处理,可以更好的控制 gulp
任务的执行顺序。
gulp.watch
改进,在 chokidar
的基础上支持各种文件操作方式的监视。
另外新增了几个 API:
gulp.symlink
用于创建symlinks
。gulp.lastRun
用于获得指定任务上一次的执行时间。gulp.tree
用于获取当前任务的树形结构。gulp.registry
用于获取或者设置注册任务。
所有 API 的详细说明可以在这里找到:https://github.com/gulpjs/gulp/blob/v4.0.0/docs/API.md。
另外,对于命令行执行方式,也添加更加丰富的指令,详情可以参阅:https://github.com/gulpjs/gulp/blob/v4.0.0/docs/CLI.md
更新之后,对现有的生态系统影响不会太大,因为还是保留了 v3.9.1
的安装方式。要安装 v4
,需要使用 npm install gulp@next
命令来进行安装和获取。这些也都在其 README.md
文件里面有详细说明。
鉴于发布的太过于突然,我来不及反应,也暂时没有想法要将现有系统的构建脚本升级到适配 gulp v4
的版本。
前不久在 parcel
爆发之后,自己曾经说过,gulp v4
发布遥遥无期,这还不到一个月,我就被打脸了,想想也真是如梦如幻啊。