支持传入watchOptions

This commit is contained in:
Pan Qiancheng 2024-12-08 13:30:16 +08:00
parent 7afe4f9583
commit 5434fe0429
3 changed files with 17 additions and 0 deletions

View File

@ -420,6 +420,7 @@ module.exports = function (webpackEnv) {
aggregateTimeout: 600, aggregateTimeout: 600,
ignored: '**/node_modules', ignored: '**/node_modules',
followSymlinks: true, followSymlinks: true,
...(projectConfiguration?.watchOptions || {}),
}, },
performance: { performance: {
hints: false, hints: false,

View File

@ -12,6 +12,9 @@ type PluginInstanceType = PluginType extends Array<infer T> ? Exclude<T, false |
type ModuleType = Required<WebpackConfiguration>['module']; type ModuleType = Required<WebpackConfiguration>['module'];
type RuleType = Required<ModuleType>['rules']; type RuleType = Required<ModuleType>['rules'];
type RuleObjectType = RuleType extends Array<infer T> ? Exclude<T, false | number | string | null | undefined> : never; type RuleObjectType = RuleType extends Array<infer T> ? Exclude<T, false | number | string | null | undefined> : never;
type WatchOptionsType = Required<WebpackConfiguration>['watchOptions'];
type IgnoreType = Required<WatchOptionsType>['ignored'];
type PollType = Required<WatchOptionsType>['poll'];
/** /**
* *
*/ */
@ -30,6 +33,11 @@ export type CompilerConfiguration = {
rules: RuleObjectType[]; rules: RuleObjectType[];
}; };
plugins?: PluginInstanceType[]; plugins?: PluginInstanceType[];
watchOptions?: {
aggregateTimeout?: number;
ignored?: IgnoreType;
poll?: PollType;
};
}; };
}; };
/** /**

View File

@ -14,6 +14,9 @@ type PluginInstanceType = PluginType extends Array<infer T> ? Exclude<T, false |
type ModuleType = Required < WebpackConfiguration > ['module']; type ModuleType = Required < WebpackConfiguration > ['module'];
type RuleType = Required<ModuleType>['rules']; type RuleType = Required<ModuleType>['rules'];
type RuleObjectType = RuleType extends Array<infer T> ? Exclude<T, false | number | string | null | undefined> : never type RuleObjectType = RuleType extends Array<infer T> ? Exclude<T, false | number | string | null | undefined> : never
type WatchOptionsType = Required<WebpackConfiguration>['watchOptions'];
type IgnoreType = Required<WatchOptionsType>['ignored'];
type PollType = Required<WatchOptionsType>['poll'];
/** /**
* *
@ -33,6 +36,11 @@ export type CompilerConfiguration = {
rules: RuleObjectType[]; rules: RuleObjectType[];
} }
plugins?: PluginInstanceType[]; plugins?: PluginInstanceType[];
watchOptions?: {
aggregateTimeout?: number;
ignored?: IgnoreType;
poll?: PollType;
}
}, },
}; };