From d110987d4d708be197aa288d744455d4a33bb7b4 Mon Sep 17 00:00:00 2001 From: Alexander Ryzhikov Date: Fri, 30 Jun 2017 09:03:01 +0200 Subject: [PATCH] Move parsing babelrc to try/catch block --- package.json | 1 + src/installer.js | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 788402e..eb0523c 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "homepage": "https://github.com/ericclemmons/npm-install-webpack-plugin#readme", "dependencies": { "cross-spawn": "^5.0.1", + "json5": "^0.5.1", "memory-fs": "^0.4.1", "resolve": "^1.2.0" }, diff --git a/src/installer.js b/src/installer.js index 4f44877..c38af40 100644 --- a/src/installer.js +++ b/src/installer.js @@ -3,13 +3,14 @@ var fs = require("fs"); var path = require("path"); var resolve = require("resolve"); var util = require("util"); +var JSON5 = require("json5"); var EXTERNAL = /^\w[a-z\-0-9\.]+$/; // Match "react", "path", "fs", "lodash.random", etc. var PEERS = /UNMET PEER DEPENDENCY ([a-z\-0-9\.]+)@(.+)/gm; -var defaultOptions = { - dev: false, - peerDependencies: true, +var defaultOptions = { + dev: false, + peerDependencies: true, quiet: false, npm: 'npm', }; @@ -68,7 +69,11 @@ module.exports.check = function check(request) { module.exports.checkBabel = function checkBabel() { try { var babelrc = require.resolve(path.resolve(".babelrc")); + var babelOpts = JSON5.parse(fs.readFileSync(babelrc, "utf8")); } catch (e) { + if (babelrc) { + console.info(".babelrc is invalid JSON5, babel deps are skipped") + } // Babel isn't installed, don't install deps return; } @@ -77,7 +82,7 @@ module.exports.checkBabel = function checkBabel() { var options = Object.assign({ plugins: [], presets: [], - }, JSON.parse(fs.readFileSync(babelrc, "utf8"))); + }, babelOpts); if (!options.env) { options.env = {};