diff --git a/packages/babel-cli/src/babel/dir.js b/packages/babel-cli/src/babel/dir.js index 4e4cb11c1d..ebd86380b7 100644 --- a/packages/babel-cli/src/babel/dir.js +++ b/packages/babel-cli/src/babel/dir.js @@ -64,7 +64,7 @@ module.exports = function (commander, filenames) { _.each(filenames, handle); if (commander.watch) { - let chokidar = require("chokidar"); + let chokidar = util.requireChokidar(); _.each(filenames, function (dirname) { let watcher = chokidar.watch(dirname, { diff --git a/packages/babel-cli/src/babel/file.js b/packages/babel-cli/src/babel/file.js index 9ab05ed696..26fbaf3452 100644 --- a/packages/babel-cli/src/babel/file.js +++ b/packages/babel-cli/src/babel/file.js @@ -132,7 +132,7 @@ module.exports = function (commander, filenames, opts) { walk(); if (commander.watch) { - let chokidar = require("chokidar"); + let chokidar = util.requireChokidar(); chokidar.watch(filenames, { persistent: true, ignoreInitial: true diff --git a/packages/babel-cli/src/babel/util.js b/packages/babel-cli/src/babel/util.js index 720705001a..e0d004fcb8 100644 --- a/packages/babel-cli/src/babel/util.js +++ b/packages/babel-cli/src/babel/util.js @@ -71,3 +71,12 @@ process.on("uncaughtException", function (err) { console.error(toErrorStack(err)); process.exit(1); }); + +export function requireChokidar() { + try { + return require("chokidar"); + } catch (err) { + console.error("The optional dependency chokidar failed to install and is required for --watch. Chokidar is likely not supported on your platform.") + throw err; + } +}