Merge pull request #3307 from josh/cli-optional-chokidar-dev

babel-cli: Make chokidar dependency optional
This commit is contained in:
Amjad Masad 2016-02-02 16:45:02 -08:00
commit aa9dafe05f
4 changed files with 15 additions and 3 deletions

View File

@ -13,7 +13,6 @@
"babel-runtime": "^5.0.0",
"bin-version-check": "^2.1.0",
"chalk": "1.1.1",
"chokidar": "^1.0.0",
"commander": "^2.8.1",
"convert-source-map": "^1.1.0",
"fs-readdir-recursive": "^0.1.0",
@ -28,6 +27,9 @@
"source-map": "^0.5.0",
"v8flags": "^2.0.10"
},
"optionalDependencies": {
"chokidar": "^1.0.0"
},
"devDependencies": {
"babel-helper-fixtures": "^6.3.13"
},

View File

@ -1,6 +1,5 @@
let outputFileSync = require("output-file-sync");
let pathExists = require("path-exists");
let chokidar = require("chokidar");
let slash = require("slash");
let path = require("path");
let util = require("./util");
@ -65,6 +64,8 @@ module.exports = function (commander, filenames) {
_.each(filenames, handle);
if (commander.watch) {
let chokidar = util.requireChokidar();
_.each(filenames, function (dirname) {
let watcher = chokidar.watch(dirname, {
persistent: true,

View File

@ -1,7 +1,6 @@
let convertSourceMap = require("convert-source-map");
let pathExists = require("path-exists");
let sourceMap = require("source-map");
let chokidar = require("chokidar");
let slash = require("slash");
let path = require("path");
let util = require("./util");
@ -133,6 +132,7 @@ module.exports = function (commander, filenames, opts) {
walk();
if (commander.watch) {
let chokidar = util.requireChokidar();
chokidar.watch(filenames, {
persistent: true,
ignoreInitial: true

View File

@ -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;
}
}