/** * 参考:https://github.com/ice-lab/ice-next/blob/master/packages/ice/src/service/watchSource.ts */ import * as chokidar from 'chokidar'; import type { WatchOptions } from 'chokidar'; type EventName = 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir'; export type WatchEvent = [ pattern: RegExp | string, event: (eventName: EventName, filePath: string) => void, name?: string ]; declare function createWatch(options: { watchDir: string; command?: string; watchOptions?: WatchOptions; watchEvents?: WatchEvent[]; }): { watcher: chokidar.FSWatcher; addWatchEvent: (...args: WatchEvent[]) => void; removeWatchEvent: (name: string) => void; }; export default createWatch;