Improve external dependency compatibility: native module detection and DLL exclusion option #3702
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Improve External Dependency Compatibility: Native Module Detection & DLL Exclusion Option
Description
While working with Electron React Boilerplate, I noticed that some external packages—especially those with native modules or special export/dynamic import requirements—were causing unexpected build failures.
This PR updates the native module detection logic to be more accurate and adds a simple way for users to exclude problematic packages from the DLL bundle. I believe these changes will make it much easier to integrate a wider variety of dependencies without running into confusing errors.
Changes Made
.erb/scripts/check-native-dep.js
binding.gyp
file and a direct entry inpackage.json
dependencies are flagged as native.npm ls
parsing and the try-catch block..erb/configs/webpack.config.renderer.dev.dll.ts
dllExclude
array, allowing users to easily specify packages to exclude from the DLL bundle.Why
Testing
dllExclude
successfully excludes them from the DLL bundle.