lastRun()#
检索当前运行进程中任务上次成功完成的时间。在监视程序运行时,在后续任务运行中最为有用。
与 src() 结合使用时,启用增量构建,通过跳过自上次任务成功完成以来未更改的文件,从而加快执行时间。
用法#
签名#
参数#
| 参数 | 类型 | 备注 |
|---|---|---|
| task (必需) | 函数 字符串 | 任务函数或已注册任务的字符串别名。 |
| precision | 数字 | 默认值:Node v0.10 上的 1000,Node v0.12+ 上的 0。详情见下文的 时间戳精度 部分。 |
返回值#
一个时间戳(以毫秒为单位),与任务的上次完成时间相匹配。如果任务尚未运行或已失败,则返回 undefined。
为了避免缓存无效状态,如果任务出错,则返回值将为 undefined。
错误#
当使用字符串或函数以外的值调用时,会抛出一个错误,消息为“只有函数可以检查 lastRun”。
当在不可扩展函数上调用并且 Node 缺少 WeakMap 时,会抛出一个错误,消息为“只有可扩展函数可以检查 lastRun”。
时间戳精度#
虽然时间戳精度的默认值是合理的,但可以使用 precision 参数对它们进行舍入。如果你的文件系统或 Node 版本对文件时间属性的精度有损耗,这将很有用。
lastRun(someTask)返回 1426000001111lastRun(someTask, 100)返回 1426000001100lastRun(someTask, 1000)返回 1426000001000
文件的 mtime stat 精度可能因 Node 版本和/或使用的文件系统而异。
| 平台 | precision |
|---|---|
| Node v0.10 | 1000ms |
| Node v0.12+ | 1ms |
| FAT32 文件系统 | 2000ms |
| HFS+ 或 Ext3 文件系统 | 1000ms |
| 使用 Node v0.10 的 NTFS | 1s |
| 使用 Node 0.12+ 的 NTFS | 100ms |
| 使用 Node v0.10 的 Ext4 | 1000ms |
| 使用 Node 0.12+ 的 Ext4 | 1ms |