Skip to content

Unexpected end of JSON input #42

@jrop

Description

@jrop

First of all I love this utility, thanks for making!

I am getting the following error:

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at getDependencyTree (/Users/me/.config/yarn/global/node_modules/cost-of-modules/lib/helpers.js:64:17)
    at Object.getRootDependencies (/Users/me/.config/yarn/global/node_modules/cost-of-modules/lib/helpers.js:73:26)
    at Object.<anonymous> (/Users/me/.config/yarn/global/node_modules/cost-of-modules/lib/index.js:26:32)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Function.Module.runMain (module.js:605:10)

My package.json is:

{
  "name": "gtest",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "devDependencies": {
    "gulp": "gulpjs/gulp#4.0",
    "gulp-cli": "^1.3.0"
  }
}

I am using npm 5.0.0, and I suspect that the issue relates to npm ls --json printing errors after printing the json (note that sync-exec channels both STDOUT and STDERR and returns the combination).

You should probably use:

const {spawnSync} = require('child_process')
const proc = spawnSync('npm', ['ls', '--json'])
console.log(JSON.parse(proc.stdout.toString()))
// ignore proc.stderr

Erroneous "JSON" output (note STDERR at end):

{
  "name": "gtest",
  "version": "1.0.0",
  "problems": [
    "invalid: gulp@4.0.0-alpha.2 /Users/me/Desktop/gtest/node_modules/gulp",
    "extraneous: glob-watcher@3.2.0 /Users/me/Desktop/gtest/node_modules/glob-watcher",
    "extraneous: undertaker@1.1.0 /Users/me/Desktop/gtest/node_modules/undertaker",
    "extraneous: vinyl-fs@2.4.4 /Users/me/Desktop/gtest/node_modules/vinyl-fs",
    "extraneous: node-pre-gyp@0.6.36 /Users/me/Desktop/gtest/node_modules/node-pre-gyp"
  ],
  "dependencies": {
    "...": "..."
  }
}
npm ERR! invalid: gulp@4.0.0-alpha.2 /Users/me/Desktop/gtest/node_modules/gulp
npm ERR! extraneous: glob-watcher@3.2.0 /Users/me/Desktop/gtest/node_modules/glob-watcher
npm ERR! extraneous: undertaker@1.1.0 /Users/me/Desktop/gtest/node_modules/undertaker
npm ERR! extraneous: vinyl-fs@2.4.4 /Users/me/Desktop/gtest/node_modules/vinyl-fs
npm ERR! extraneous: node-pre-gyp@0.6.36 /Users/me/Desktop/gtest/node_modules/node-pre-gyp

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions