diff --git a/lib/in/read-package-json.js b/lib/in/read-package-json.js index 5c2e0e82..a238e8d9 100644 --- a/lib/in/read-package-json.js +++ b/lib/in/read-package-json.js @@ -1,17 +1,20 @@ 'use strict'; const extend = require('xtend'); +const fs = require('fs'); function readPackageJson(filename) { let pkg; let error; try { - pkg = require(filename); + pkg = JSON.parse(fs.readFileSync(filename, 'utf8')); } catch (e) { - if (e.code === 'MODULE_NOT_FOUND') { + if (e.code === 'ENOENT') { error = new Error(`A package.json was not found at ${filename}`); - } else { + } else if(e instanceof SyntaxError) { error = new Error(`A package.json was found at ${filename}, but it is not valid.`); + } else { + error = e; } } return extend({devDependencies: {}, dependencies: {}, error: error}, pkg)