Electron-builder: SyntaxError: Failed to parse json while running install-app-deps

Created on 13 Sep 2019  Â·  1Comment  Â·  Source: electron-userland/electron-builder

  • Version: 20.43.0
  • electron-updater: 4.1.2
  • Target: Mac

I am not able to launch the application. I am having the following error:

```
• electron-builder version=20.43.0

• loaded configuration file=package.json ("build" field)
SyntaxError: Unexpected token  in JSON at position 0
SyntaxError: Unexpected token  in JSON at position 0
at JSON.parse ()
at then.it (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:55:22)
at tryCatcher (/Users/gferreras/repos/pearl-v2/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/Users/gferreras/repos/pearl-v2/node_modules/bluebird/js/release/promise.js:517:31)
at Promise._settlePromise (/Users/gferreras/repos/pearl-v2/node_modules/bluebird/js/release/promise.js:574:18)
at Promise._settlePromise0 (/Users/gferreras/repos/pearl-v2/node_modules/bluebird/js/release/promise.js:619:10)
at Promise._settlePromises (/Users/gferreras/repos/pearl-v2/node_modules/bluebird/js/release/promise.js:699:18)
at Promise._fulfill (/Users/gferreras/repos/pearl-v2/node_modules/bluebird/js/release/promise.js:643:18)
at /Users/gferreras/repos/pearl-v2/node_modules/bluebird/js/release/nodeback.js:42:21
at /Users/gferreras/repos/pearl-v2/node_modules/graceful-fs/graceful-fs.js:115:16
at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)
From previous event:
at readJson (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:55:6)
at /Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:224:61
at Generator.next ()
at callback (/Users/gferreras/repos/pearl-v2/node_modules/graceful-fs/polyfills.js:295:20)
at FSReqWrap.oncomplete (fs.js:155:5)
From previous event:
at Collector.readChildPackage (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:206:90)
at _bluebirdLst.default.map.it (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:191:69)
From previous event:
at /Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:191:40
at Generator.next ()
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From previous event:
at Collector.readInstalled (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:170:91)
at /Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:78:16
at Generator.next ()
at /Users/gferreras/repos/pearl-v2/node_modules/graceful-fs/graceful-fs.js:115:16
at FSReqWrap.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:53:3)
From previous event:
at Collector.collect (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:76:28)
at /Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:47:44
at Generator.next ()
From previous event:
at _getProductionDependencies (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/out/util/packageDependencies.js:92:37)
at getProductionDependencies (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/out/util/packageDependencies.js:83:37)
at Lazy. (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/packageDependencies.ts:41:25)
at Lazy.get value [as value] (/Users/gferreras/repos/pearl-v2/node_modules/lazy-val/src/main.ts:18:25)
at /Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/out/util/yarn.js:166:90
at Generator.next ()
From previous event:
at _rebuild (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/yarn.ts:179:5)
at rebuild (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/out/util/yarn.js:163:19)
at /Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/src/util/yarn.ts:20:11
From previous event:
at _installOrRebuild (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/out/util/yarn.js:71:28)
at installOrRebuild (/Users/gferreras/repos/pearl-v2/node_modules/app-builder-lib/out/util/yarn.js:55:28)
at /Users/gferreras/repos/pearl-v2/node_modules/electron-builder/src/cli/install-app-deps.ts:59:9
at Generator.next ()
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
From previous event:
at _installAppDeps (/Users/gferreras/repos/pearl-v2/node_modules/electron-builder/out/cli/install-app-deps.js:178:26)
at installAppDeps (/Users/gferreras/repos/pearl-v2/node_modules/electron-builder/out/cli/install-app-deps.js:146:26)
at then (/Users/gferreras/repos/pearl-v2/node_modules/electron-builder/src/cli/cli.ts:49:19)
```

Most helpful comment

The issue for me was caused by a BOM character in paralleljs/package.json (if you're using flow-typed in electron-react-boilerplate, you may see this error).

To determine which package is causing the error:

  1. add .catch(err => { console.log(file); throw err; }) in readJson in node_modules/app-builder-lib/out/util/packageDependencies.js
  2. run electron-builder install-app-deps how you normally do. The console will log the file that's causing the problem before printing the stacktrace.

Workaround for yarn:

  1. Once you've found the file(s) causing the problem, create a file called .yarnclean in your root directory. Check it into version control.
  2. Add the path to each package.json file (relative to node_modules) e.g. paralleljs/package.json, one per line
  3. Run yarn autoclean --force. This will remove the invalid JSON files from node_modules. This script also runs after yarn install and yarn add, so you don't need to do any additional scripting after the first forced run.
  4. Run install-app-deps again.

>All comments

The issue for me was caused by a BOM character in paralleljs/package.json (if you're using flow-typed in electron-react-boilerplate, you may see this error).

To determine which package is causing the error:

  1. add .catch(err => { console.log(file); throw err; }) in readJson in node_modules/app-builder-lib/out/util/packageDependencies.js
  2. run electron-builder install-app-deps how you normally do. The console will log the file that's causing the problem before printing the stacktrace.

Workaround for yarn:

  1. Once you've found the file(s) causing the problem, create a file called .yarnclean in your root directory. Check it into version control.
  2. Add the path to each package.json file (relative to node_modules) e.g. paralleljs/package.json, one per line
  3. Run yarn autoclean --force. This will remove the invalid JSON files from node_modules. This script also runs after yarn install and yarn add, so you don't need to do any additional scripting after the first forced run.
  4. Run install-app-deps again.
Was this page helpful?
0 / 5 - 0 ratings