node-web-mvc
Version:
node spring mvc
90 lines (89 loc) • 2.33 kB
TypeScript
import fs from 'fs';
import HotModule from './HotModule';
import Module from 'module';
import ListReplacement from './updater/ListReplacement';
type Hooks = HotModule['hooks'];
type HookTypeKeys = keyof Hooks;
export declare class NodeHotModule extends Module {
hot: HotModule;
}
export declare class HotOptions {
/**
* 热更新监听目录
*/
cwd: string | Array<string>;
/**
* 热更新执行频率,单位:毫秒
*/
reloadTimeout?: number;
/**
* 排除目录或者文件
*/
exclude?: RegExp;
/**
* 是否解除node_modules限制
*/
includeNodeModules?: boolean;
}
declare class HotReload {
ListReplacement: typeof ListReplacement;
/**
* 热更新配置
*/
options: HotOptions;
/**
* 当前所有热更新模块
*/
private hotModules;
/**
* 热更新执行频率单位:毫秒
*/
private reloadTimeout;
private isHotUpdating;
private allHash;
constructor();
/**
* 创建一个数据热更新器
*/
createHotUpdater<T>(data: any, now: any, old: any): import("./updater/ArrayUpdater").default<T> | import("./updater/MapUpdater").default<T> | import("./updater/ObjectUpdater").default<T>;
/**
* 创建指定id的热更新模块,如果模块已存在,则直接返回
* @param {Module} mod 模块对象
*/
create(mod: any): HotModule;
/**
* 监听文件改动
*/
watch(cwd: any): fs.FSWatcher;
hotWatch(type: any, filename: any): void;
renderId(id: any): any;
/**
* 文件改动时,处理热更新
* @param id
*/
handleReload(file: string): void;
/**
* 重载模块
*/
tryReload(old: NodeHotModule): boolean;
/**
* 广播注册的热更新消息
*/
invokeHook<K extends HookTypeKeys>(name: K, ...args: Parameters<Hooks[K]['invoke']>): void;
/**
* 项目启动后,初始化构建热更新模块
*/
findAllReasons(old: NodeHotModule): HotModule[];
makeHash(file: string): string;
createHash(file: string): string;
/**
* 监听改变
*/
run(options?: HotOptions): {
options: HotOptions;
dirs: string[];
close(): void;
};
}
declare const _default: HotReload;
export default _default;