When using forge.config.js, because resolveForgeConfig can be called by both "Checking your system" and "Preparing to Package Application for arch: x64" will result in "You have set packagerConfig.ignore, the Electron Forge webpack plugin normally sets this automatically." even though packagerConfig.ignore is actually the WebPackPlugins own function that it sets automatically.
When using package.json for config is does not repro
No custom package ignore is set, should not get error "You have set packagerConfig.ignore"
error:
You have set packagerConfig.ignore, the Electron Forge webpack plugin normally sets this automatically.
Your packaged app may be larger than expected if you dont ignore everything other than the '.webpack' folder
Log:
WARNING: DEBUG environment variable detected. Progress indicators will be sent over electron-forge:lifecycle
electron-forge:async-ora Process Started: Checking your system +0ms
electron-forge:check-system checking system, create ~/.skip-forge-system-check to stop doing this +0ms
electron-forge:async-ora Process Succeeded: Checking your system -- after 545ms +547ms
WARNING: DEBUG environment variable detected. Progress indicators will be sent over electron-forge:lifecycle
electron-forge:async-ora Process Started: Resolving Forge Config +0ms
electron-forge:project-resolver searching for project in: C:\git\powerlogsminer +0ms
electron-forge:project-resolver electron-forge compatible package.json found in C:\git\powerlogsminer\package.json +2ms
electron-forge:require-search searching [ '@electron-forge/plugin-webpack',
'C:\git\powerlogsminer\@electron-forge\plugin-webpack',
'C:\git\powerlogsminer\node_modules\@electron-forge\plugin-webpack' ] relative to C:\git\powerlogsminer +0ms
electron-forge:require-search testing @electron-forge/plugin-webpack +2ms
electron-forge:plugin:webpack hooking process events +0ms
Trace: resolveForgeConfig
at hook (C:\git\powerlogsminer\node_modules\@electron-forge\plugin-webpack\src\WebpackPlugin.ts:186:7)
at PluginInterface.triggerMutatingHook (C:\git\powerlogsminer\node_modules\@electron-forge\core\src\util\plugin-interface.ts:66:24)
at runMutatingHook (C:\git\powerlogsminer\node_modules\@electron-forge\core\src\util\hook.ts:34:38)
at _default (C:\git\powerlogsminer\node_modules\@electron-forge\core\src\util\forge-config.ts:149:23)
electron-forge:async-ora Process Succeeded: Resolving Forge Config -- after 725ms +728ms
electron-forge:require-search searching [ '@electron-forge/maker-squirrel',
'C:\git\powerlogsminer\@electron-forge\maker-squirrel',
'C:\git\powerlogsminer\node_modules\@electron-forge\maker-squirrel' ] relative to C:\git\powerlogsminer +701ms
electron-forge:require-search testing @electron-forge/maker-squirrel +1ms
electron-forge:require-search searching [ '@electron-forge/maker-zip',
'C:\git\powerlogsminer\@electron-forge\maker-zip',
'C:\git\powerlogsminer\node_modules\@electron-forge\maker-zip' ] relative to C:\git\powerlogsminer +78ms
electron-forge:require-search testing @electron-forge/maker-zip +1ms
electron-forge:require-search searching [ '@electron-forge/maker-deb',
'C:\git\powerlogsminer\@electron-forge\maker-deb',
'C:\git\powerlogsminer\node_modules\@electron-forge\maker-deb' ] relative to C:\git\powerlogsminer +2ms
electron-forge:require-search testing @electron-forge/maker-deb +20ms
electron-forge:require-search searching [ '@electron-forge/maker-rpm',
'C:\git\powerlogsminer\@electron-forge\maker-rpm',
'C:\git\powerlogsminer\node_modules\@electron-forge\maker-rpm' ] relative to C:\git\powerlogsminer +4ms
electron-forge:require-search testing @electron-forge/maker-rpm +21ms
electron-forge:async-ora Process Started: Preparing to Package Application for arch: x64 +130ms
electron-forge:project-resolver searching for project in: C:\git\powerlogsminer +856ms
electron-forge:project-resolver electron-forge compatible package.json found in C:\git\powerlogsminer\package.json +7ms
electron-forge:require-search searching [ '@electron-forge/plugin-webpack',
'C:\git\powerlogsminer\@electron-forge\plugin-webpack',
'C:\git\powerlogsminer\node_modules\@electron-forge\plugin-webpack' ] relative to C:\git\powerlogsminer +38ms
electron-forge:require-search testing @electron-forge/plugin-webpack +1ms
electron-forge:plugin:webpack hooking process events +196ms
Trace: resolveForgeConfig
at hook (C:\git\powerlogsminer\node_modules\@electron-forge\plugin-webpack\src\WebpackPlugin.ts:186:7)
at PluginInterface.triggerMutatingHook (C:\git\powerlogsminer\node_modules\@electron-forge\core\src\util\plugin-interface.ts:66:24)
at runMutatingHook (C:\git\powerlogsminer\node_modules\@electron-forge\core\src\util\hook.ts:34:38)
at _default (C:\git\powerlogsminer\node_modules\@electron-forge\core\src\util\forge-config.ts:149:23)
You have set packagerConfig.ignore, the Electron Forge webpack plugin normally sets this automatically.
Your packaged app may be larger than expected if you dont ignore everything other than the '.webpack' folder
electron-forge:async-ora Process Started: Compiling Main Process Code +69ms
electron-forge:plugin:webpack:webpackconfig Config mode: production +0ms
electron-forge:async-ora Process Succeeded: Compiling Main Process Code -- after 5.6s +6s
electron-forge:async-ora Process Started: Compiling Renderer Template +1ms
I'm witnessing this behaviour too. I'm on macOS, with beta 54.
I just switched from using the package.json config which did not have this behaviour, to a separate JS config file and now am seeing this output.
Having tried to piece this all together, it seems as though in the Webpack plugin, ignore will be set initially if it hasn't already been manually overridden by the developer. But then because the config can be retrieved multiple other times depending on what action is being taken, the check for ignore is happening multiple times, resulting in the error as described by @daveparslow .
Would it make sense that on the first retrieval of the config, and when the Webpack plugin initially sets the ignore config to the default function for Webpack, to set a boolean flag somewhere where it can be persisted, and then this conditional check to include that boolean flag and only happen if someone had actually manually set the ignore value?
let defaultWebpackIgnore = false;
...
if (forgeConfig.packagerConfig.ignore && defaultWebpackIgnore === false) {
...
}
defaultWebpackIgnore = true;
forgeConfig.packagerConfig.ignore = (file: string) => {
...
The question is, where could that flag be persisted, or is there an alternative workaround? Whenever I see this error I fear that files that should be ignored aren't being ignored, but from what I can tell the default ignore function is set to ignore Webpack related files, so it should all be ok. It's a false positive nonetheless and very distracting.
I'm also facing the same issue, I also switched from package.json to forge.config.js.
In my case after the packaging app was unable to load module, so I mentioned the igonre attribute manually with an empty array to check if everything is getting bundled properly or not, Now it is working but the app size got a lot bigger.
So anyone has any idea how can I solve the above issue properly.
Would appreciate any input or feedback on the proposed fix in #2125, please.
@MarshallOfSound see this problem and this solution, please
Most helpful comment
I'm witnessing this behaviour too. I'm on macOS, with beta 54.
I just switched from using the
package.jsonconfig which did not have this behaviour, to a separate JS config file and now am seeing this output.