forge icon indicating copy to clipboard operation
forge copied to clipboard

Optional dependencies excluded with plugin-vite

Open jclem opened this issue 1 year ago • 1 comments

Pre-flight checklist

  • [X] I have read the contribution documentation for this project.
  • [X] I agree to follow the code of conduct that this project uses.
  • [X] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Electron Forge version

7.4.0

Electron version

29.2.0

Operating system

macOS 14.5

Last known working Electron Forge version

No response

Expected behavior

When building an app with optional dependencies and the Vite plugin, optional dependencies are included in the build output.

Actual behavior

Optional dependencies are excluded from the output.

Steps to reproduce

Build a project using https://github.com/lovell/sharp, which has optional dependencies. They will not be in the packaged node_modules, and so their native binaries can not be copied.

Additional information

Adding them as dependencies is a poor solution, since they are platform-specific.

jclem avatar May 16 '24 22:05 jclem

I have had to fix this by using this hook in my Forge config:

async packageAfterCopy(_config, buildPath) {
  await NodeFSExtra.copy(
    "node_modules/@img",
    NodePath.join(buildPath, "node_modules/@img"),
  );
},

jclem avatar May 16 '24 23:05 jclem