diff --git a/packages/rspack/src/config/defaults.ts b/packages/rspack/src/config/defaults.ts index 5364e85e366f..dee439e40d35 100644 --- a/packages/rspack/src/config/defaults.ts +++ b/packages/rspack/src/config/defaults.ts @@ -48,7 +48,8 @@ import type { ResolveOptions, RspackFutureOptions, RuleSetRules, - SnapshotOptions + SnapshotOptions, + WatchOptions } from "./types"; export const applyRspackOptionsDefaults = ( @@ -184,6 +185,9 @@ export const applyRspackOptionsDefaults = ( getResolveLoaderDefaults(), options.resolveLoader ); + + D(options, "watchOptions", {}); + applyWatchOptionsDefaults(options.watchOptions, options.resolve); }; export const applyRspackOptionsBaseDefaults = ( @@ -1065,6 +1069,14 @@ const applyOptimizationDefaults = ( } }; +const applyWatchOptionsDefaults = ( + watchOptions: WatchOptions, + resolve: ResolveOptions +) => { + const followSymlinks = resolve.symlinks ?? true; + watchOptions.followSymlinks = watchOptions.followSymlinks ?? followSymlinks; +}; + const getResolveLoaderDefaults = () => { const resolveOptions: ResolveOptions = { conditionNames: ["loader", "require", "node"], diff --git a/tests/rspack-test/defaultsCases/default/base.js b/tests/rspack-test/defaultsCases/default/base.js index d07765ad9f0b..efb3884ac5e8 100644 --- a/tests/rspack-test/defaultsCases/default/base.js +++ b/tests/rspack-test/defaultsCases/default/base.js @@ -575,7 +575,9 @@ module.exports = { stats: Object {}, target: web, watch: false, - watchOptions: Object {}, + watchOptions: Object { + followSymlinks: true, + }, } `) };