diff --git a/packages/webpack-cli/lib/groups/ConfigGroup.js b/packages/webpack-cli/lib/groups/ConfigGroup.js index beac89662e8..3b559708f55 100644 --- a/packages/webpack-cli/lib/groups/ConfigGroup.js +++ b/packages/webpack-cli/lib/groups/ConfigGroup.js @@ -126,13 +126,13 @@ const resolveConfigFiles = async (args) => { const defaultConfig = configFiles.find((p) => p.path.includes(mode) || p.path.includes(modeAlias[mode])); if (defaultConfig) { - opts = await finalize(defaultConfig, args); + opts = await finalize(defaultConfig, args, true); return; } const foundConfig = configFiles.pop(); - opts = await finalize(foundConfig, args); + opts = await finalize(foundConfig, args, true); return; } @@ -140,7 +140,7 @@ const resolveConfigFiles = async (args) => { // Given config data, determines the type of config and // returns final config -const finalize = async (moduleObj, args) => { +const finalize = async (moduleObj, args, isDefault = false) => { const { env, configName } = args; const newOptionsObject = { outputOptions: {}, @@ -151,6 +151,10 @@ const finalize = async (moduleObj, args) => { return newOptionsObject; } + if (isDefault) { + newOptionsObject.outputOptions.defaultConfig = moduleObj.path; + } + const config = moduleObj.config; const isMultiCompilerMode = Array.isArray(config); diff --git a/packages/webpack-cli/lib/utils/flag-defaults.js b/packages/webpack-cli/lib/utils/flag-defaults.js index 10940d05d42..75c18c6d6ed 100644 --- a/packages/webpack-cli/lib/utils/flag-defaults.js +++ b/packages/webpack-cli/lib/utils/flag-defaults.js @@ -1,23 +1,24 @@ -const cacheDefaults = (finalConfig, parsedArgs) => { +const cacheDefaults = (finalConfig, parsedArgs, outputOptions) => { // eslint-disable-next-line no-prototype-builtins const hasCache = finalConfig.hasOwnProperty('cache'); let cacheConfig = {}; - if (hasCache && parsedArgs.config) { + if (hasCache && (parsedArgs.config || outputOptions.defaultConfig)) { if (finalConfig.cache && finalConfig.cache.type === 'filesystem') { cacheConfig.buildDependencies = { - config: parsedArgs.config, + config: parsedArgs.config || outputOptions.defaultConfig, }; } return { cache: cacheConfig }; } + console.log({ cacheConfig, outputOptions }); return cacheConfig; }; -const assignFlagDefaults = (compilerConfig, parsedArgs) => { +const assignFlagDefaults = (compilerConfig, parsedArgs, outputOptions) => { if (Array.isArray(compilerConfig)) { - return compilerConfig.map((config) => cacheDefaults(config, parsedArgs)); + return compilerConfig.map((config) => cacheDefaults(config, parsedArgs, outputOptions)); } - return cacheDefaults(compilerConfig, parsedArgs); + return cacheDefaults(compilerConfig, parsedArgs, outputOptions); }; module.exports = assignFlagDefaults; diff --git a/packages/webpack-cli/lib/webpack-cli.js b/packages/webpack-cli/lib/webpack-cli.js index 9ae5c1ae010..cee5cb2cfe3 100644 --- a/packages/webpack-cli/lib/webpack-cli.js +++ b/packages/webpack-cli/lib/webpack-cli.js @@ -61,7 +61,7 @@ class WebpackCLI extends GroupHelper { coreCliHelper.processArguments(coreCliArgs, this.compilerConfiguration, coreConfig); // Assign some defaults to core flags } - const configWithDefaults = assignFlagDefaults(this.compilerConfiguration, parsedArgs); + const configWithDefaults = assignFlagDefaults(this.compilerConfiguration, parsedArgs, this.outputConfiguration); this._mergeOptionsToConfiguration(configWithDefaults); }