Gulp 4 已发布!

千呼万唤始出来,犹抱琵琶半遮面。

在这一天发布的日子里面,其实 gulp 一口气是出了四个版本的:

  • v4.0.0-alpha.1
  • v4.0.0-alpha.2
  • v4.0.0-alpha.3
  • v4.0.0

前面三个是打了 pre-release 的标签的。

更新记录这里就不赘述了,简单来说一下发布带来的新特性吧。

首先是 API 的变化,新增了两个非常重要的改进:gulp.parallelgulp.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 发布遥遥无期,这还不到一个月,我就被打脸了,想想也真是如梦如幻啊。