Skip to content

Instantly share code, notes, and snippets.

@toonn
Last active September 25, 2022 17:12
Show Gist options
  • Save toonn/cc5ee11da3b70112a487e8883a40d918 to your computer and use it in GitHub Desktop.
Save toonn/cc5ee11da3b70112a487e8883a40d918 to your computer and use it in GitHub Desktop.
Attempt to package GB Studio

.../gb-studio/default.nix

{ stdenv, fetchFromGitHub, mkYarnPackage }:

mkYarnPackage rec {
  pname = "gb-studio";
  version = "3.0.3";
  rev = "v${version}";

  src = fetchFromGitHub {
    inherit rev;
    owner = "chrismaltby";
    repo = "gb-studio";
    sha256 = "sha256-QqGTUXVlV42Xyiq4wEqgyIWWlcM1JY/L+9k5YcOfomA=";
  };
}

/nix/store/23xhck29n7cskvbfr9yl7h2lq64sdm20-gb-studio-3.0.3

bin/gb-studio-cli is a symlink pointing into a non-existing directory:

/nix/store/23xhck29n7cskvbfr9yl7h2lq64sdm20-gb-studio-3.0.3/bin/gb-studio-cli@ -> ../libexec/gb-studio/deps/gb-studio/out/cli/gb-studio-cli.js

> ls /nix/store/23xhck29n7cskvbfr9yl7h2lq64sdm20-gb-studio-3.0.3/libexec/gb-studio/deps/gb-studio/
CHANGELOG.md                jest.config.js
CODE_OF_CONDUCT.md          node_modules@
CONTRIBUTING.md             package.json
DEVELOPERS.md               src/
LICENSE                     test/
README.md                   tsconfig.json
appData/                    webpack.cli.config.js
buildTools/                 webpack.main.config.js
contributors.json           webpack.plugins.js
entitlements.plist          webpack.renderer.config.js
forge.config.js             webpack.rules.js
gb-studio@                  yarn.lock
gbstudio.gif

This looks like a copy of the repository.

It's trying to build gb-studio-cli because that is listed as the bin in package.json:

"bin": {
    "gb-studio-cli": "./out/cli/gb-studio-cli.js"
  },

This also seems like the source of the path in the symlink. I'm not sure what build step should be responsible for generating this out directory.

.../gb-studio/default.nix

Adding a custom buildPhase to build the GUI, in this case for macOS.

{ stdenv, fetchFromGitHub, mkYarnPackage }:

mkYarnPackage rec {
  pname = "gb-studio";
  version = "3.0.3";
  rev = "v${version}";

  src = fetchFromGitHub {
    inherit rev;
    owner = "chrismaltby";
    repo = "gb-studio";
    sha256 = "sha256-QqGTUXVlV42Xyiq4wEqgyIWWlcM1JY/L+9k5YcOfomA=";
  };

  buildPhase = ''
    runHook preBuild
    
    yarn --offline make:mac
    
    runHook postBuild
  '';
}

Errors with a mildly unclear message about maybe missing git:

this derivation will be built:
  /nix/store/cpcg60hyxl65lcrwjgn4klw8qhg75znj-gb-studio-3.0.3.drv
building '/nix/store/cpcg60hyxl65lcrwjgn4klw8qhg75znj-gb-studio-3.0.3.drv'...
unpacking sources
unpacking source archive /nix/store/78k608absg8lcb787r28cm7yf7kni51n-source
source root is source
patching sources
configuring
configurePhase completed in 2 minutes 0 seconds
building
yarn run v1.22.19
warning Skipping preferred cache folder "/homeless-shelter/Library/Caches/Yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/private/tmp/nix-build-gb-studio-3.0.3.drv-0/.yarn-cache-301".
$ electron-forge make --arch=x64 --platform=darwin
warning Cannot find a suitable global folder. Tried these: "/usr/local, /homeless-shelter/.yarn"
⠋ Checking your system⠙ Checking your system⠹ Checking your system⠸ Checking your system⠼ Checking your system⠴ Checking your system✔ Checking your system
It looks like you are missing some dependencies you need to get Electron running.
Make sure you have git installed and Node.js version >= 12.13.0
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Stubbed Git

So I decided to fake git and "implement" the specific commands it needs:

{ stdenv, fetchFromGitHub, mkYarnPackage }:

mkYarnPackage rec {
  pname = "gb-studio";
  version = "3.0.3";
  rev = "v${version}";

  src = fetchFromGitHub {
    inherit rev;
    owner = "chrismaltby";
    repo = "gb-studio";
    sha256 = "sha256-QqGTUXVlV42Xyiq4wEqgyIWWlcM1JY/L+9k5YcOfomA=";
  };

  preBuild = ''
    # Add a fake `git` so we don't need to keep `.git` in the source
    mkdir fake-bin

    cat >fake-bin/git <<'EOF'
    #!${stdenv.shell} -e

    case "$@" in
      "describe --always"| \
      "rev-list --max-count=1 --no-merges --abbrev-commit HEAD")
        echo ${rev};;
      *) echo "INVALID fake git arguments: $@" 1>&2;;
    esac
    EOF

    chmod +x fake-bin/*
    export PATH="$PWD/fake-bin''${PATH:+:$PATH}"
  '';

  buildPhase = ''
    runHook preBuild
    
    yarn --offline make:mac
    
    runHook postBuild
  '';
}
This gets us a little bit further but runs into missing dependency errors:
this derivation will be built:
  /nix/store/cpcg60hyxl65lcrwjgn4klw8qhg75znj-gb-studio-3.0.3.drv
building '/nix/store/cpcg60hyxl65lcrwjgn4klw8qhg75znj-gb-studio-3.0.3.drv'...
unpacking sources
unpacking source archive /nix/store/78k608absg8lcb787r28cm7yf7kni51n-source
source root is source
patching sources
configuring
configurePhase completed in 2 minutes 0 seconds
building
yarn run v1.22.19
warning Skipping preferred cache folder "/homeless-shelter/Library/Caches/Yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/private/tmp/nix-build-gb-studio-3.0.3.drv-0/.yarn-cache-301".
$ electron-forge make --arch=x64 --platform=darwin
warning Cannot find a suitable global folder. Tried these: "/usr/local, /homeless-shelter/.yarn"
⠋ Checking your system⠙ Checking your system⠹ Checking your system⠸ Checking your system⠼ Checking your system⠴ Checking your system✔ Checking your system
It looks like you are missing some dependencies you need to get Electron running.
Make sure you have git installed and Node.js version >= 12.13.0
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error: builder for '/nix/store/cpcg60hyxl65lcrwjgn4klw8qhg75znj-gb-studio-3.0.3.drv' failed with exit code 1;
       last 10 log lines:
       > yarn run v1.22.19
       > warning Skipping preferred cache folder "/homeless-shelter/Library/Caches/Yarn" because it is not writable.
       > warning Selected the next writable cache folder in the list, will be "/private/tmp/nix-build-gb-studio-3.0.3.drv-0/.yarn-cache-301".
       > $ electron-forge make --arch=x64 --platform=darwin
       > warning Cannot find a suitable global folder. Tried these: "/usr/local, /homeless-shelter/.yarn"
       > ⠋ Checking your system⠙ Checking your system⠹ Checking your system⠸ Checking your system⠼ Checking your system⠴ Checking your system✔ Checking your system
       > It looks like you are missing some dependencies you need to get Electron running.
       > Make sure you have git installed and Node.js version >= 12.13.0
       > error Command failed with exit code 1.
       > info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
       For full logs, run 'nix log /nix/store/cpcg60hyxl65lcrwjgn4klw8qhg75znj-gb-studio-3.0.3.drv'.
toonn@terra ~/s/n/gb-studio> fg
Send job 1 (vim pkgs/applications/emulators/gb-studio/*) to foreground
fish: Job 1, 'vim pkgs/applications/emulators…' has stopped
toonn@terra ~/s/n/gb-studio> nix-build --pure --no-out-link -A gb-studio
this derivation will be built:
  /nix/store/qqi89383x83if3mwxqh79jag8llrgywi-gb-studio-3.0.3.drv
building '/nix/store/qqi89383x83if3mwxqh79jag8llrgywi-gb-studio-3.0.3.drv'...
unpacking sources
unpacking source archive /nix/store/78k608absg8lcb787r28cm7yf7kni51n-source
source root is source
patching sources
configuring
configurePhase completed in 1 minutes 17 seconds
building
yarn run v1.22.19
warning Skipping preferred cache folder "/homeless-shelter/Library/Caches/Yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/private/tmp/nix-build-gb-studio-3.0.3.drv-0/.yarn-cache-301".
$ electron-forge make --arch=x64 --platform=darwin
warning Cannot find a suitable global folder. Tried these: "/usr/local, /homeless-shelter/.yarn"
⠋ Checking your system⠙ Checking your system⠹ Checking your system⠸ Checking your system⠼ Checking your system⠴ Checking your system✔ Checking your system
⠋ Resolving Forge Config✔ Resolving Forge Config
We need to package your application before we can make it
⠋ Preparing to Package Application for arch: x64You 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
⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code⠹ Preparing to Package Application for arch: x64⠙ Compiling Main Process Code⠸ Preparing to Package Application for arch: x64⠹ Compiling Main Process Code⠼ Preparing to Package Application for arch: x64⠸ Compiling Main Process Code⠴ Preparing to Package Application for arch: x64⠼ Compiling Main Process Code⠦ Preparing to Package Application for arch: x64⠴ Compiling Main Process Code⠧ Preparing to Package Application for arch: x64⠦ Compiling Main Process Code⠇ Preparing to Package Application for arch: x64⠧ Compiling Main Process Code⠏ Preparing to Package Application for arch: x64⠇ Compiling Main Process Code⠋ Preparing to Package Application for arch: x64⠏ Compiling Main Process Code⠙ Preparing to Package Application for arch: x64⠋ Compiling Main Process Code✖ Compiling Main Process Code

An unhandled error has occurred inside Forge:
Compilation errors in the main process: assets by status 128 KiB [cached] 1 asset
runtime modules 105 bytes 1 module
modules by path ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/ 102 KiB
  modules by path ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ 49.1 KiB 22 modules
  modules by path ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/semver/ 16.5 KiB 9 modules
  modules by path ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/*.js 36.7 KiB 3 modules
modules by path ./src/ 125 KiB
  modules by path ./src/lib/ 13.7 KiB 4 modules
  modules by path ./src/*.js 33 KiB
    ./src/menu.js 28.7 KiB [built] [code generated]
    ./src/consts.js 4.3 KiB [built] [code generated]
  ./src/main.ts 35.6 KiB [built] [code generated]
  ./src/lang/en.json 42.6 KiB [built] [code generated]
8 modules

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync/copy-sync.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync/index.js 4:12-34
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 8:2-24
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy/copy.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy/index.js 5:10-27
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 9:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 9:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/empty/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/empty'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 10:2-20
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/file.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 3:13-30
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/file.js 5:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 3:13-30
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/link.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 4:13-30
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/link.js 5:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 4:13-30
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink-paths.js 4:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink.js 10:22-48
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 5:16-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink-type.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink.js 14:21-46
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 5:16-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 5:16-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink.js 5:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 5:16-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/fs/index.js 4:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/fs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 6:2-17
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/fs/index.js 5:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/fs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 6:2-17
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 12:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/jsonfile.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/index.js 4:17-38
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 12:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/jsonfile.js 4:17-36
Module not found: Error: Can't resolve 'jsonfile' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json'
Did you mean './jsonfile'?
Requests that should resolve in the current directory need to start with './'.
Requests that start with a name are treated as module requests and resolve within module directories (/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio, /private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/node_modules, /nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/@electron-forge/plugin-webpack/node_modules).
If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/index.js 4:17-38
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 12:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/output-json-sync.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/index.js 7:26-55
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 12:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/index.js 2:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 13:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/index.js 4:19-43
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 13:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/mkdirs.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/index.js 3:17-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 13:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move-sync/index.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move-sync'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 14:2-24
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 15:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move/index.js 4:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 15:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/output/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/output'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 16:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/output/index.js 4:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/output'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 16:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/path-exists/index.js 2:10-45
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/path-exists'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 17:2-26
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 18:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove/rimraf.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove/index.js 4:15-34
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 18:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/util/utimes.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/util'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync/copy-sync.js 6:19-64
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync/index.js 4:12-34
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 8:2-24
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/common.js 16:16-36
Module not found: Error: Can't resolve 'minimatch' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 53:13-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/common.js 17:17-44
Module not found: Error: Can't resolve 'path-is-absolute' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 53:13-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 44:9-31
Module not found: Error: Can't resolve 'fs.realpath' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 45:16-36
Module not found: Error: Can't resolve 'minimatch' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 47:15-34
Module not found: Error: Can't resolve 'inherits' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 51:17-44
Module not found: Error: Can't resolve 'path-is-absolute' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 58:15-34
Module not found: Error: Can't resolve 'inflight' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 63:11-26
Module not found: Error: Can't resolve 'once' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/sync.js 5:9-31
Module not found: Error: Can't resolve 'fs.realpath' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 52:15-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/sync.js 6:16-36
Module not found: Error: Can't resolve 'minimatch' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 52:15-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/sync.js 12:17-44
Module not found: Error: Can't resolve 'path-is-absolute' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 52:15-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ./src/lib/helpers/updateChecker.js 46:29-53
Module not found: Error: Can't resolve '@octokit/rest' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src/lib/helpers'
 @ ./src/main.ts 78:22-58

ERROR in ./src/lib/helpers/updateChecker.js 47:42-70
Module not found: Error: Can't resolve 'electron-settings' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src/lib/helpers'
 @ ./src/main.ts 78:22-58

ERROR in ./src/menu.js 94:42-70
Module not found: Error: Can't resolve 'electron-settings' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'
 @ ./src/main.ts 77:29-46

ERROR in ./src/lib/helpers/initElectronL10n.ts 7:42-70
Module not found: Error: Can't resolve 'electron-settings' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src/lib/helpers'
 @ ./src/main.ts 81:41-80

ERROR in ./src/main.ts 73:46-78
Module not found: Error: Can't resolve 'electron-window-state' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'

ERROR in ./src/main.ts 74:42-70
Module not found: Error: Can't resolve 'electron-settings' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'

ERROR in ./src/main.ts 82:49-87
Module not found: Error: Can't resolve 'electron-devtools-installer' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'

ERROR in ./src/main.ts 85:4-40
Module not found: Error: Can't resolve 'electron-squirrel-startup' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'

ERROR in unable to locate '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/node_modules/about-window' glob

49 errors have detailed information that is not shown.
Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.

webpack 5.38.1 compiled with 50 errors in 25740 ms
Error: Compilation errors in the main process: assets by status 128 KiB [cached] 1 asset
runtime modules 105 bytes 1 module
modules by path ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/ 102 KiB
  modules by path ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ 49.1 KiB 22 modules
  modules by path ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/semver/ 16.5 KiB 9 modules
  modules by path ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/*.js 36.7 KiB 3 modules
modules by path ./src/ 125 KiB
  modules by path ./src/lib/ 13.7 KiB 4 modules
  modules by path ./src/*.js 33 KiB
    ./src/menu.js 28.7 KiB [built] [code generated]
    ./src/consts.js 4.3 KiB [built] [code generated]
  ./src/main.ts 35.6 KiB [built] [code generated]
  ./src/lang/en.json 42.6 KiB [built] [code generated]
8 modules

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync/copy-sync.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync/index.js 4:12-34
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 8:2-24
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy/copy.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy/index.js 5:10-27
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 9:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 9:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/empty/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/empty'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 10:2-20
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/file.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 3:13-30
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/file.js 5:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 3:13-30
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/link.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 4:13-30
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/link.js 5:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 4:13-30
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink-paths.js 4:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink.js 10:22-48
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 5:16-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink-type.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink.js 14:21-46
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 5:16-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 5:16-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/symlink.js 5:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/ensure/index.js 5:16-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 11:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/fs/index.js 4:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/fs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 6:2-17
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/fs/index.js 5:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/fs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 6:2-17
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 12:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/jsonfile.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/index.js 4:17-38
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 12:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/jsonfile.js 4:17-36
Module not found: Error: Can't resolve 'jsonfile' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json'
Did you mean './jsonfile'?
Requests that should resolve in the current directory need to start with './'.
Requests that start with a name are treated as module requests and resolve within module directories (/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio, /private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/node_modules, /nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/@electron-forge/plugin-webpack/node_modules).
If changing the source code is not an option there is also a resolve options called 'preferRelative' which tries to resolve these kind of requests in the current directory too.
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/index.js 4:17-38
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 12:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/output-json-sync.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/json/index.js 7:26-55
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 12:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/index.js 2:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 13:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/index.js 4:19-43
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 13:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/mkdirs.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/mkdirs/index.js 3:17-36
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 13:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move-sync/index.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move-sync'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 14:2-24
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 15:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move/index.js 4:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/move'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 15:2-19
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/output/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/output'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 16:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/output/index.js 4:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/output'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 16:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/path-exists/index.js 2:10-45
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/path-exists'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 17:2-26
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove/index.js 3:10-46
Module not found: Error: Can't resolve 'universalify' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 18:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove/rimraf.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/remove/index.js 4:15-34
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 18:2-21
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/util/utimes.js 3:11-33
Module not found: Error: Can't resolve 'graceful-fs' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/util'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync/copy-sync.js 6:19-64
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/copy-sync/index.js 4:12-34
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/fs-extra/lib/index.js 8:2-24
 @ ./src/main.ts 76:17-36

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/common.js 16:16-36
Module not found: Error: Can't resolve 'minimatch' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 53:13-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/common.js 17:17-44
Module not found: Error: Can't resolve 'path-is-absolute' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 53:13-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 44:9-31
Module not found: Error: Can't resolve 'fs.realpath' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 45:16-36
Module not found: Error: Can't resolve 'minimatch' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 47:15-34
Module not found: Error: Can't resolve 'inherits' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 51:17-44
Module not found: Error: Can't resolve 'path-is-absolute' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 58:15-34
Module not found: Error: Can't resolve 'inflight' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 63:11-26
Module not found: Error: Can't resolve 'once' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/sync.js 5:9-31
Module not found: Error: Can't resolve 'fs.realpath' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 52:15-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/sync.js 6:16-36
Module not found: Error: Can't resolve 'minimatch' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 52:15-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/sync.js 12:17-44
Module not found: Error: Can't resolve 'path-is-absolute' in '/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob'
 @ ../../../../../../nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/glob/glob.js 52:15-35
 @ ./src/lib/helpers/l10n.ts 8:29-44
 @ ./src/main.ts 80:26-53

ERROR in ./src/lib/helpers/updateChecker.js 46:29-53
Module not found: Error: Can't resolve '@octokit/rest' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src/lib/helpers'
 @ ./src/main.ts 78:22-58

ERROR in ./src/lib/helpers/updateChecker.js 47:42-70
Module not found: Error: Can't resolve 'electron-settings' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src/lib/helpers'
 @ ./src/main.ts 78:22-58

ERROR in ./src/menu.js 94:42-70
Module not found: Error: Can't resolve 'electron-settings' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'
 @ ./src/main.ts 77:29-46

ERROR in ./src/lib/helpers/initElectronL10n.ts 7:42-70
Module not found: Error: Can't resolve 'electron-settings' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src/lib/helpers'
 @ ./src/main.ts 81:41-80

ERROR in ./src/main.ts 73:46-78
Module not found: Error: Can't resolve 'electron-window-state' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'

ERROR in ./src/main.ts 74:42-70
Module not found: Error: Can't resolve 'electron-settings' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'

ERROR in ./src/main.ts 82:49-87
Module not found: Error: Can't resolve 'electron-devtools-installer' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'

ERROR in ./src/main.ts 85:4-40
Module not found: Error: Can't resolve 'electron-squirrel-startup' in '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/src'

ERROR in unable to locate '/private/tmp/nix-build-gb-studio-3.0.3.drv-0/source/deps/gb-studio/node_modules/about-window' glob

49 errors have detailed information that is not shown.
Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.

webpack 5.38.1 compiled with 50 errors in 25740 ms
    at cb (/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/@electron-forge/plugin-webpack/src/WebpackPlugin.ts:252:31)
    at finalCallback (/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/webpack/lib/Compiler.js:415:32)
    at /nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/webpack/lib/Compiler.js:432:13
    at Hook.eval [as callAsync] (eval at create (/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:15:1)
    at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/tapable/lib/Hook.js:18:14)
    at onCompiled (/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/webpack/lib/Compiler.js:430:21)
    at /nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/webpack/lib/Compiler.js:1106:17
    at eval (eval at create (/nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:14:1)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

Additional sleuthing

Looking into this I've found a couple things that might be interesting.

> ls /nix/store/f2ypabdmjqm1wdc47bpx0n6j9fd300jf-gb-studio-modules-3.0.3/deps/gb-studio/node_modules/
commander/ deepmerge/ fs-extra/  glob/      rimraf/    semver/
From inside the `buildPhase`:
NODE_PATH: /nix/store/0ws9319m3qpsafm0grigpmh60d2qkby9-nodejs-18.8.0/lib/node_modules

.yarnrc:
--cwd deps/gb-studio

> ls deps/gb-studio
CHANGELOG.md        entitlements.plist  tsconfig.json
CODE_OF_CONDUCT.md  forge.config.js     webpack.cli.config.js
CONTRIBUTING.md     gb-studio           webpack.main.config.js
DEVELOPERS.md       gbstudio.gif        webpack.plugins.js
LICENSE             jest.config.js      webpack.renderer.config.js
README.md           node_modules        webpack.rules.js
appData             package.json        yarn.lock
buildTools          src
contributors.json   test

> ls node_modules
3x3-equation-solver               jest-jasmine2
@babel                            jest-leak-detector
@bcoe                             jest-matcher-utils
@discoveryjs                      jest-message-util
@electron                         jest-mock
@electron-forge                   jest-pnp-resolver
@emotion                          jest-regex-util
@eslint                           jest-resolve
@hot-loader                       jest-resolve-dependencies
@istanbuljs                       jest-runner
@jest                             jest-runtime
@malept                           jest-serializer
@nodelib                          jest-snapshot
@octokit                          jest-util
@paulcbetts                       jest-validate
@polka                            jest-watcher
@react-dnd                        jest-worker
@reduxjs                          js-tokens
@sindresorhus                     js-yaml
@sinonjs                          jsbn
@szmarczak                        jsdom
@testing-library                  jsesc
@tootallnate                      json-buffer
@types                            json-loader
@typescript-eslint                json-parse-better-errors
@vercel                           json-parse-even-better-errors
@webassemblyjs                    json-schema
@webpack-cli                      json-schema-traverse
@xtuc                             json-stable-stringify-without-jsonify
abab                              json-stringify-safe
abbrev                            json5
about-window                      jsonfile
accepts                           jsprim
acorn                             jsx-ast-utils
acorn-globals                     jszip
acorn-walk                        junk
agent-base                        keyv
aggregate-error                   killable
ajv                               kind-of
ajv-keywords                      kleur
ansi-colors                       lcid
ansi-escapes                      leven
ansi-html                         levn
ansi-regex                        lie
ansi-styles                       lines-and-columns
anymatch                          load-json-file
aproba                            loader-runner
are-we-there-yet                  loader-utils
argparse                          locate-path
aria-query                        lodash
arr-diff                          lodash._reinterpolate
arr-flatten                       lodash.assign
arr-union                         lodash.get
array-find-index                  lodash.set
array-flatten                     lodash.template
array-includes                    lodash.templatesettings
array-union                       lodash.uniq
array-unique                      log-symbols
array.prototype.flat              loose-envify
asar                              loud-rejection
asn1                              lower-case
assert-plus                       lowercase-keys
assign-symbols                    lru-cache
ast-types-flow                    lz-string
astral-regex                      lzma-native
async                             macos-release
async-limiter                     make-dir
asynckit                          make-error
at-least-node                     makeerror
atob                              map-age-cleaner
atob-lite                         map-cache
author-regex                      map-obj
aws-sign2                         map-visit
aws4                              matcher
axobject-query                    media-typer
babel-eslint                      mem
babel-plugin-emotion              memfs
babel-plugin-istanbul             memoize-one
babel-plugin-jest-hoist           meow
babel-plugin-macros               merge-descriptors
babel-plugin-styled-components    merge-stream
babel-plugin-syntax-jsx           merge2
babel-preset-current-node-syntax  methods
balanced-match                    micromatch
base                              mime
base64-js                         mime-db
batch                             mime-types
bcrypt-pbkdf                      mimic-fn
before-after-hook                 mimic-response
big.js                            min-document
binary-extensions                 min-indent
bl                                minimalistic-assert
bluebird                          minimatch
body-parser                       minimist
bonjour                           minipass
boolbase                          minizlib
boolean                           mixin-deep
brace-expansion                   mkdirp
braces                            ms
browser-process-hrtime            multicast-dns
browserslist                      multicast-dns-service-types
bs-logger                         mute-stream
bser                              nanomatch
btoa                              natural-compare
btoa-lite                         needle
buffer                            negotiator
buffer-alloc                      neo-async
buffer-alloc-unsafe               nice-try
buffer-crc32                      no-case
buffer-fill                       node-abi
buffer-from                       node-addon-api
buffer-indexof                    node-fetch
bytes                             node-forge
cache-base                        node-gyp
cacheable-lookup                  node-int64
cacheable-request                 node-loader
call-bind                         node-modules-regexp
caller-callsite                   node-pre-gyp
caller-path                       node-releases
callsites                         nopt
camel-case                        normalize-package-data
camelcase                         normalize-path
camelcase-keys                    normalize-url
camelize                          normalizr
caniuse-lite                      npm-bundled
caseless                          npm-conf
chalk                             npm-packlist
char-regex                        npm-run-path
chardet                           npmlog
chokidar                          nth-check
chownr                            nugget
chrome-trace-event                number-is-nan
chromium-pickle-js                nwsapi
ci-info                           oauth-sign
cjs-module-lexer                  object-assign
class-utils                       object-copy
classnames                        object-inspect
clean-css                         object-is
clean-stack                       object-keys
cli-cursor                        object-visit
cli-spinners                      object.assign
cli-width                         object.entries
cliui                             object.fromentries
clone                             object.pick
clone-deep                        object.values
clone-response                    obuf
co                                octokit-pagination-methods
code-point-at                     on-finished
collect-v8-coverage               on-headers
collection-visit                  once
color-convert                     onetime
color-name                        open
colorette                         opener
colors                            optionator
combined-stream                   ora
commander                         os-homedir
commondir                         os-locale
compare-version                   os-name
component-emitter                 os-tmpdir
compressible                      osenv
compression                       p-cancelable
compute-scroll-into-view          p-defer
concat-map                        p-each-series
concat-stream                     p-event
config-chain                      p-finally
confusing-browser-globals         p-is-promise
connect-history-api-fallback      p-limit
console-control-strings           p-locate
contains-path                     p-map
content-disposition               p-retry
content-type                      p-timeout
convert-source-map                p-try
cookie                            pako
cookie-signature                  param-case
copy-descriptor                   parent-module
copy-webpack-plugin               parse-author
core-js                           parse-json
core-js-pure                      parse-ms
core-util-is                      parse-passwd
cosmiconfig                       parse5
cross-spawn                       parseurl
cross-zip                         pascal-case
css                               pascalcase
css-color-keywords                path-exists
css-loader                        path-is-absolute
css-select                        path-key
css-to-react-native               path-parse
css-what                          path-to-regexp
css.escape                        path-type
cssesc                            pend
cssom                             performance-now
cssstyle                          picocolors
csstype                           picomatch
cuint                             pify
currently-unhandled               pinkie
damerau-levenshtein               pinkie-promise
dashdash                          pirates
data-urls                         pkg-dir
debug                             plist
decamelize                        pngjs
decimal.js                        portfinder
decode-uri-component              posix-character-classes
decompress-response               postcss
dedent                            postcss-modules-extract-imports
deep-equal                        postcss-modules-local-by-default
deep-extend                       postcss-modules-scope
deep-is                           postcss-modules-values
deepmerge                         postcss-selector-parser
default-gateway                   postcss-value-parser
defaults                          prelude-ls
defer-to-connect                  prepend-http
define-lazy-prop                  prettier
define-properties                 pretty-bytes
define-property                   pretty-error
del                               pretty-format
delayed-stream                    pretty-ms
delegates                         process
depd                              process-nextick-args
deprecation                       progress
destroy                           progress-stream
detect-libc                       prompts
detect-newline                    prop-types
detect-node                       proto-list
detect-node-es                    proxy-addr
diff-sequences                    pseudomap
dir-glob                          psl
dnd-core                          pump
dns-equal                         punycode
dns-packet                        qs
dns-txt                           querystring
doctrine                          queue
dom-accessibility-api             queue-microtask
dom-converter                     quick-lru
dom-helpers                       randombytes
dom-serializer                    range-parser
dom-walk                          raw-body
domelementtype                    raw-loader
domexception                      rc
domhandler                        rcedit
domutils                          react
dot-case                          react-clientside-effect
duplexer                          react-cool-dimensions
duplexer3                         react-dnd
ecc-jsbn                          react-dnd-html5-backend
ee-first                          react-dom
electron                          react-fast-compare
electron-compile                  react-focus-lock
electron-devtools-installer       react-helmet
electron-installer-common         react-highlight-words
electron-installer-debian         react-hot-loader
electron-installer-redhat         react-input-autosize
electron-is                       react-is
electron-is-dev                   react-lifecycles-compat
electron-notarize                 react-mentions
electron-osx-sign                 react-range
electron-packager                 react-redux
electron-rebuild                  react-scroll-into-view-if-needed
electron-settings                 react-select
electron-squirrel-startup         react-select-async-paginate
electron-to-chromium              react-side-effect
electron-window-state             react-transition-group
electron-winstaller               react-window
emittery                          react-windowed-select
emoji-regex                       read-pkg
emojis-list                       read-pkg-up
encodeurl                         readable-stream
end-of-stream                     readdirp
enhanced-resolve                  rechoir
enquirer                          redent
entities                          redux
env-paths                         redux-thunk
envinfo                           redux-undo
error-ex                          regenerator-runtime
es-abstract                       regex-not
es-module-lexer                   regexp.prototype.flags
es-to-primitive                   regexpp
es6-error                         relateurl
escalade                          renderkid
escape-html                       repeat-element
escape-string-regexp              repeat-string
escodegen                         repeating
eslint                            request
eslint-config-airbnb              require-directory
eslint-config-airbnb-base         require-from-string
eslint-config-prettier            require-main-filename
eslint-config-react-app           requires-port
eslint-import-resolver-node       reselect
eslint-module-utils               resolve
eslint-plugin-babel               resolve-alpn
eslint-plugin-flowtype            resolve-cwd
eslint-plugin-import              resolve-dir
eslint-plugin-jsx-a11y            resolve-from
eslint-plugin-react               resolve-package
eslint-plugin-react-hooks         resolve-url
eslint-rule-composer              responselike
eslint-scope                      restore-cursor
eslint-utils                      ret
eslint-visitor-keys               retry
espree                            reusify
esprima                           rgbquant
esquery                           rimraf
esrecurse                         roarr
estraverse                        run-async
esutils                           run-parallel
etag                              rxjs
eventemitter3                     safe-buffer
events                            safe-regex
execa                             safer-buffer
exit                              sanitize-filename
expand-brackets                   sax
expand-tilde                      saxes
expect                            scheduler
express                           schema-utils
express-ws                        scroll-into-view-if-needed
extend                            select-hose
extend-shallow                    selfsigned
external-editor                   semver
extglob                           semver-compare
extract-zip                       send
extsprintf                        serialize-error
fast-deep-equal                   serialize-javascript
fast-glob                         serve-index
fast-json-stable-stringify        serve-static
fast-levenshtein                  set-blocking
fastest-levenshtein               set-immediate-shim
fastq                             set-value
faye-websocket                    setprototypeof
fb-watchman                       shallow-clone
fd-slicer                         shallowequal
figures                           shebang-command
file-entry-cache                  shebang-regex
file-loader                       side-channel
filename-reserved-regex           signal-exit
filenamify                        single-line-log
fill-range                        sirv
finalhandler                      sisteransi
find-cache-dir                    slash
find-root                         slice-ansi
find-up                           snapdragon
flat-cache                        snapdragon-node
flatted                           snapdragon-util
flora-colossus                    sockjs
focus-lock                        source-list-map
focus-visible                     source-map
follow-redirects                  source-map-resolve
for-in                            source-map-support
forever-agent                     source-map-url
fork-ts-checker-webpack-plugin    spawn-rx
form-data                         spdx-correct
forwarded                         spdx-exceptions
fragment-cache                    spdx-expression-parse
fresh                             spdx-license-ids
fs-extra                          spdy
fs-minipass                       spdy-transport
fs-monkey                         speedometer
fs.realpath                       split-string
fsevents                          sprintf-js
function-bind                     sshpk
functional-red-black-tree         stack-utils
fuse.js                           static-extend
galactus                          statuses
gar                               string-length
gauge                             string-width
gb-studio                         string.prototype.matchall
gensync                           string.prototype.trimend
get-caller-file                   string.prototype.trimleft
get-folder-size                   string.prototype.trimright
get-installed-path                string.prototype.trimstart
get-intrinsic                     string_decoder
get-package-info                  strip-ansi
get-package-type                  strip-bom
get-stdin                         strip-eof
get-stream                        strip-final-newline
get-value                         strip-indent
getpass                           strip-json-comments
git-revision-webpack-plugin       strip-outer
glob                              style-loader
glob-parent                       styled-components
glob-to-regexp                    substyle
global                            sudo-prompt
global-agent                      sumchecker
global-modules                    supports-color
global-prefix                     supports-hyperlinks
global-tunnel-ng                  symbol-observable
globals                           symbol-tree
globalthis                        table
globby                            tapable
got                               tar
graceful-fs                       temp
gzip-size                         terminal-link
handle-thing                      terser
har-schema                        terser-webpack-plugin
har-validator                     test-exclude
has                               text-table
has-flag                          throat
has-symbols                       throttleit
has-unicode                       through
has-value                         through2
has-values                        thunky
he                                tiny-each-async
highlight-words-core              tmp
hoist-non-react-statics           tmp-promise
homedir-polyfill                  tmpl
hosted-git-info                   to-fast-properties
hpack.js                          to-object-path
html-encoding-sniffer             to-readable-stream
html-entities                     to-regex
html-escaper                      to-regex-range
html-minifier-terser              toidentifier
html-webpack-plugin               totalist
htmlparser2                       tough-cookie
http-cache-semantics              tr46
http-deceiver                     trim-newlines
http-errors                       trim-repeated
http-parser-js                    truncate-utf8-bytes
http-proxy                        ts-flood-fill
http-proxy-agent                  ts-jest
http-proxy-middleware             ts-loader
http-signature                    tslib
http2-wrapper                     tsutils
https-proxy-agent                 tunnel
human-signals                     tunnel-agent
iconv-lite                        tweetnacl
icss-utils                        type-check
ieee754                           type-detect
ignore                            type-fest
ignore-walk                       type-is
image-size                        typedarray
immediate                         typedarray-to-buffer
immer                             typescript
import-fresh                      union-value
import-local                      uniq
imurmurhash                       universal-user-agent
indent-string                     universalify
indexes-of                        unpipe
inflight                          unset-value
inherits                          unzip-crx-3
ini                               uri-js
inquirer                          urix
internal-ip                       url
internal-slot                     url-parse-lax
interpret                         url-template
invariant                         use
invert-kv                         use-callback-ref
ip                                use-sidecar
ip-regex                          username
ipaddr.js                         utf8-byte-length
is-absolute-url                   util-deprecate
is-accessor-descriptor            utila
is-arguments                      utils-merge
is-arrayish                       uuid
is-binary-path                    v8-compile-cache
is-buffer                         v8-to-istanbul
is-callable                       validate-npm-package-license
is-ci                             vary
is-core-module                    verror
is-data-descriptor                vm2
is-date-object                    w3c-hr-time
is-descriptor                     w3c-xmlserializer
is-directory                      walker
is-docker                         watchpack
is-extendable                     wbuf
is-extglob                        wcwidth
is-finite                         webidl-conversions
is-fullwidth-code-point           webpack
is-generator-fn                   webpack-bundle-analyzer
is-glob                           webpack-cli
is-interactive                    webpack-dev-middleware
is-ip                             webpack-dev-server
is-number                         webpack-merge
is-path-cwd                       webpack-sources
is-path-inside                    websocket-driver
is-plain-obj                      websocket-extensions
is-plain-object                   whatwg-encoding
is-potential-custom-element-name  whatwg-mimetype
is-regex                          whatwg-url
is-stream                         which
is-string                         which-module
is-symbol                         wide-align
is-typedarray                     wildcard
is-unicode-supported              window-size
is-utf8                           windows-release
is-windows                        word-wrap
is-wsl                            worker-loader
isarray                           wrap-ansi
isbinaryfile                      wrappy
isexe                             write-file-atomic
isobject                          ws
isstream                          xml-name-validator
istanbul-lib-coverage             xmlbuilder
istanbul-lib-instrument           xmlchars
istanbul-lib-report               xmldom
istanbul-lib-source-maps          xregexp
istanbul-reports                  xtend
jest                              xterm
jest-changed-files                xterm-addon-fit
jest-circus                       xterm-addon-search
jest-cli                          y18n
jest-config                       yaku
jest-diff                         yallist
jest-docblock                     yaml
jest-each                         yargs
jest-environment-jsdom            yargs-parser
jest-environment-node             yarn-or-npm
jest-extended                     yauzl
jest-get-type                     yocto-queue
jest-haste-map
> ls /nix/store/0ws9319m3qpsafm0grigpmh60d2qkby9-nodejs-18.8.0/lib/node_modules
corepack/ npm/

So all the missing modules seem to be in $PWD/node_modules and I'm not sure what is going wrong.

.../gb-studio/default.nix

{ stdenv, lib, fetchFromGitHub, fetchYarnDeps, fixup_yarn_lock, nodejs, yarn,
zip }:

stdenv.mkDerivation rec {
  pname = "gb-studio";
  version = "3.0.3";
  rev = "v${version}";

  src = fetchFromGitHub {
    inherit rev;
    owner = "chrismaltby";
    repo = "gb-studio";
    sha256 = "sha256-QqGTUXVlV42Xyiq4wEqgyIWWlcM1JY/L+9k5YcOfomA=";
  };

  yarnDeps = fetchYarnDeps {
    yarnLock = "${src}/yarn.lock";
    hash = "sha256-5IGYDcp6+tcU2rIGFLr9bIMSRsxFFm9FqFPzjvZWMV0=";
  };

  nativeBuildInputs = [ yarn zip ];
  buildInputs = [ nodejs ];

  patchPhase = ''
    runHook prePatch

    substituteInPlace webpack.cli.config.js --replace \
      'mode: "development"' 'mode: "production"'

    runHook postPatch
  '';

  preBuild = ''
    # Add a fake `git` so we don't need to keep `.git` in the source
    mkdir fake-bin

    cat >fake-bin/git <<'EOF'
    #!${stdenv.shell} -e

    case "$@" in
      "describe --always"| \
      "rev-list --max-count=1 --no-merges --abbrev-commit HEAD")
        echo ${rev};;
      *) echo "INVALID fake git arguments: $@" 1>&2;;
    esac
    EOF

    chmod +x fake-bin/*
    export PATH="$PWD/fake-bin''${PATH:+:$PATH}"
  '';

  buildPhase = ''
    runHook preBuild

    # Yarn writes temporary files to $HOME. Copied from mkYarnModules.
    export HOME=$NIX_BUILD_TOP/yarn_home

    # Make yarn install packages from our offline cache, not the registry
    yarn config --offline set yarn-offline-mirror ${yarnDeps}

    # Fixup "resolved"-entries in yarn.lock to match our offline cache
    ${fixup_yarn_lock}/bin/fixup_yarn_lock yarn.lock

    yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive

    patchShebangs node_modules/

    # Build into `./out/`, suppress formatting.
    yarn --offline make:cli | cat

  '' + lib.optionalString false ''
    yarn --offline make:mac | cat
  '' + ''

    runHook postBuild
  '';

  installPhase = ''
    runHook preInstall

    ls src/bin/*

    mkdir -p $out/{bin,libexec}
    cp --parents -pnPR node_modules $out/libexec
    cp --parents -pnPR out/cli/gb-studio-cli.js $out/libexec
    chmod +x $out/libexec/out/cli/gb-studio-cli.js
    ln -s ../libexec/out/cli/gb-studio-cli.js $out/bin/gb-studio-cli

  '' + lib.optionalString false ''
    mkdir -p $out/Applications
    mv out/'GB Studio-darwin-x64/GB Studio.app' $out/Applications
  '' + ''

    runHook postInstall
  '';
}

/nix/store/izl9kxnq7lhrhajc5fd6x8gspf61wdq9-gb-studio-3.0.3

Thanks to Winter I've been able to get the App building and it seems to work fine. Now I'm trying to package the accompanying command line utility. I was expecting this to be easier than building an App but apparently it's not so straightforward to provide all the run-time dependencies.

> /nix/store/izl9kxnq7lhrhajc5fd6x8gspf61wdq9-gb-studio-3.0.3/bin/gb-studio-cli -V
/nix/store/izl9kxnq7lhrhajc5fd6x8gspf61wdq9-gb-studio-3.0.3/libexec/node_modules/electron/index.js:14
    throw new Error('Electron failed to install correctly, please delete node_modules/electron and try installing again')
    ^

Error: Electron failed to install correctly, please delete node_modules/electron and try installing again
    at getElectronPath (/nix/store/izl9kxnq7lhrhajc5fd6x8gspf61wdq9-gb-studio-3.0.3/libexec/node_modules/electron/index.js:14:11)
    at Object.<anonymous> (/nix/store/izl9kxnq7lhrhajc5fd6x8gspf61wdq9-gb-studio-3.0.3/libexec/node_modules/electron/index.js:18:18)
    at Module._compile (node:internal/modules/cjs/loader:1119:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1173:10)
    at Module.load (node:internal/modules/cjs/loader:997:32)
    at Module._load (node:internal/modules/cjs/loader:838:12)
    at Module.require (node:internal/modules/cjs/loader:1021:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at 8933 (/nix/store/izl9kxnq7lhrhajc5fd6x8gspf61wdq9-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js:3:771111)
    at __webpack_require__ (/nix/store/izl9kxnq7lhrhajc5fd6x8gspf61wdq9-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js:3:771693)

Node.js v18.8.0

I tried adding electron to the buildInputs but that hasn't made a difference. And the reason I'm trying to copy the entire node_modules, which should surely be a superset of the run-time dependencies (no?), alongside the script is the following error.

> /nix/store/5vfby2wr25sac4a0jscm3naqd9pgw76f-gb-studio-3.0.3/bin/gb-studio-cli -V
node:internal/modules/cjs/loader:958
  throw err;
  ^

Error: Cannot find module 'electron'
Require stack:
- /nix/store/5vfby2wr25sac4a0jscm3naqd9pgw76f-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:955:15)
    at Module._load (node:internal/modules/cjs/loader:803:27)
    at Module.require (node:internal/modules/cjs/loader:1021:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at 8933 (/nix/store/5vfby2wr25sac4a0jscm3naqd9pgw76f-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js:3:771111)
    at __webpack_require__ (/nix/store/5vfby2wr25sac4a0jscm3naqd9pgw76f-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js:3:771693)
    at 3750 (/nix/store/5vfby2wr25sac4a0jscm3naqd9pgw76f-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js:3:463792)
    at __webpack_require__ (/nix/store/5vfby2wr25sac4a0jscm3naqd9pgw76f-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js:3:771693)
    at 4037 (/nix/store/5vfby2wr25sac4a0jscm3naqd9pgw76f-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js:3:509898)
    at __webpack_require__ (/nix/store/5vfby2wr25sac4a0jscm3naqd9pgw76f-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js:3:771693) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/nix/store/5vfby2wr25sac4a0jscm3naqd9pgw76f-gb-studio-3.0.3/libexec/out/cli/gb-studio-cli.js'
  ]
}

Node.js v18.8.0

.../gb-studio/default.nix

Trying to package it for Linux as well now.

{ stdenv, lib
, fetchFromGitHub , fetchYarnDeps , fixup_yarn_lock
, nodejs , yarn , zip
}:

stdenv.mkDerivation rec {
  pname = "gb-studio";
  version = "3.0.3";

  src = fetchFromGitHub {
    owner = "chrismaltby";
    repo = "gb-studio";
    rev = "v${version}";
    sha256 = "sha256-QqGTUXVlV42Xyiq4wEqgyIWWlcM1JY/L+9k5YcOfomA=";
  };

  yarnDeps = fetchYarnDeps {
    yarnLock = "${src}/yarn.lock";
    hash = "sha256-5IGYDcp6+tcU2rIGFLr9bIMSRsxFFm9FqFPzjvZWMV0=";
  };

  nativeBuildInputs = [ yarn zip ];
  buildInputs = [ nodejs ];

  patchPhase = ''
    runHook prePatch

    substituteInPlace webpack.cli.config.js --replace \
      'mode: "development"' 'mode: "production"'

    runHook postPatch
  '';

  buildPhase = ''
    runHook preBuild

    ###
    # Add a fake `git` so we don't need to keep `.git` in the source
    ###

    mkdir fake-bin

    cat >fake-bin/git <<'EOF'
    #!${stdenv.shell} -e

    case "$@" in
      "describe --always"| \
      "rev-list --max-count=1 --no-merges --abbrev-commit HEAD")
        echo ${src.rev};;
      *) echo "INVALID fake git arguments: $@" 1>&2;;
    esac
    EOF

    chmod +x fake-bin/*
    export PATH="$PWD/fake-bin''${PATH:+:$PATH}"

    ###
    # Set up the environment to use Yarn
    ###

    # Yarn writes temporary files to $HOME. Copied from mkYarnModules.
    export HOME=$NIX_BUILD_TOP/yarn_home

    # Make yarn install packages from our offline cache, not the registry
    yarn config --offline set yarn-offline-mirror ${yarnDeps}

    # Fixup "resolved"-entries in yarn.lock to match our offline cache
    ${fixup_yarn_lock}/bin/fixup_yarn_lock yarn.lock

    yarn install --offline --frozen-lockfile --ignore-scripts --no-progress \
      --non-interactive

    # The `electron` module needs to be able to use the electron executable
    echo ../.bin/electron >node_modules/electron/path.txt

    patchShebangs node_modules/

    export PATH="$PWD/node_modules/.bin''${PATH:+:$PATH}";

    ###
    # Build into `./out/`, suppress formatting.
    ###
    yarn --offline make:cli | cat
    yarn --offline package | cat

    runHook postBuild
  '';

  installPhase = ''
    runHook preInstall

    mkdir -p $out/{bin,libexec}
    # TODO: Installing production dependencies should be the proper way to do
    #       this but `electron` is needed for the CLI and not part of them.
    # yarn install --offline --frozen-lockfile --ignore-scripts --no-progress \
    #   --non-interactive --production \
    #   --modules-folder=$out/libexec/node_modules
    # Install run-time dependencies alongside the CLI
    cp --parents -pnPR node_modules/{electron,vm2} $out/libexec
    cp --parents -pnPR out/cli/gb-studio-cli.js $out/libexec
    chmod +x $out/libexec/out/cli/gb-studio-cli.js
    ln -s ../libexec/out/cli/gb-studio-cli.js $out/bin/gb-studio-cli

  '' + lib.optionalString stdenv.isDarwin ''
    mkdir -p $out/Applications
    mv out/'GB Studio-darwin-x64/GB Studio.app' $out/Applications
  '' + lib.optionalString stdenv.Linux ''
    ls out
    ls out/*
  '' + ''

    runHook postInstall
  '';

  meta = with lib; {
    description = "A quick and easy to use drag and drop retro game creator"
      + " for your favourite handheld video game system";
    longDescription = ''
      GB Studio is a quick and easy to use retro adventure game creator for
      Game Boy available for Mac, Linux and Windows. For more information see
      the GB Studio site

      GB Studio consists of an Electron game builder application and a C based
      game engine using GBDK, music is provided by GBT Player

      * Easy to Use: Drag and drop game creator with simple, no progamming
                     knowledge required, visual scripting. Multiple game genres
                     supported.
      * Write Music: Inbuilt editor makes writing music easy. With both piano
                     roll and tracker modes.
      * Build ROMs: Create real ROM files and play on any GB emulator. Export
                    for web with great mobile controls, upload to Itch.io and
                    share your game with the world.
    '';
    homepage = "https://www.gbstudio.dev/";
    downloadPage = "https://chrismaltby.itch.io/gb-studio";
    license = licenses.mit;
    maintainers = with maintainers; [ toonn ];
    platforms = [ "x86_64-darwin" "x86_64-linux" ];
  };
}

/nix/store/a6r3h0nf4bmqkx0va7xqbvj55cg970dn-gb-studio-3.0.3.drv

The build now errors with something to do with network access. I suspect this is because of the sandbox, which isn't enabled by default on Darwin.

An unhandled rejection has occurred inside Forge:
GotError [RequestError]: getaddrinfo EAI_AGAIN github.com
    at ClientRequest.<anonymous> (/build/source/node_modules/got/source/request-as-event-emitter.js:178:14)
    at Object.onceWrapper (node:events:628:26)
    at ClientRequest.emit (node:events:525:35)
    at ClientRequest.emit (node:domain:489:12)
    at ClientRequest.origin.emit (/build/source/node_modules/@szmarczak/http-timer/source/index.js:37:11)
    at TLSSocket.socketErrorListener (node:_http_client:494:9)
    at TLSSocket.emit (node:events:513:28)
    at TLSSocket.emit (node:domain:489:12)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'EAI_AGAIN',
  host: 'github.com',
  hostname: 'github.com',
  method: 'GET',
  path: '/electron/electron/releases/download/v8.5.5/electron-v8.5.5-linux-x64.zip',
  socketPath: undefined,
  protocol: 'https:',
  url: 'https://github.com/electron/electron/releases/download/v8.5.5/electron-v8.5.5-linux-x64.zip',
  gotOptions: {
    path: '/electron/electron/releases/download/v8.5.5/electron-v8.5.5-linux-x64.zip',
    protocol: 'https:',
    slashes: true,
    auth: null,
    host: 'github.com',
    port: null,
    hostname: 'github.com',
    hash: null,
    search: null,
    query: null,
    pathname: '/electron/electron/releases/download/v8.5.5/electron-v8.5.5-linux-x64.zip',
    href: 'https://github.com/electron/electron/releases/download/v8.5.5/electron-v8.5.5-linux-x64.zip',
    retry: {
      retries: [Function (anonymous)],
      methods: [Set],
      statusCodes: [Set],
      errorCodes: [Set]
    },
    headers: {
      'user-agent': 'got/9.6.0 (https://github.com/sindresorhus/got)',
      'accept-encoding': 'gzip, deflate'
    },
    hooks: {
      beforeRequest: [],
      beforeRedirect: [],
      beforeRetry: [],
      afterResponse: [],
      beforeError: [],
      init: []
    },
    decompress: true,
    throwHttpErrors: true,
    followRedirect: true,
    stream: true,
    form: false,
    json: false,
    cache: false,
    useElectronNet: false,
    method: 'GET'
  }
}

Electron Forge was terminated. Location:
{}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment