diff --git a/lib/config.js b/lib/config.js index d4c09882e..aae591e4a 100644 --- a/lib/config.js +++ b/lib/config.js @@ -5,16 +5,21 @@ var log = logger.create('config'); var helper = require('./helper'); var constant = require('./constants'); +var COFFEE_SCRIPT_AVAILABLE = false; +var LIVE_SCRIPT_AVAILABLE = false; + // Coffee is required here to enable config files written in coffee-script. // It's not directly used in this file. try { require('coffee-script').register(); + COFFEE_SCRIPT_AVAILABLE = true; } catch (e) {} // LiveScript is required here to enable config files written in LiveScript. // It's not directly used in this file. try { require('LiveScript'); + LIVE_SCRIPT_AVAILABLE = true; } catch (e) {} var Pattern = function(pattern, served, included, watched) { @@ -244,6 +249,15 @@ var parseConfig = function(configFilePath, cliOptions) { log.error('File %s does not exist!', configFilePath); } else { log.error('Invalid config file!\n ' + e.stack); + + var extension = path.extname(configFilePath); + if (extension === '.coffee' && !COFFEE_SCRIPT_AVAILABLE) { + log.error('You need to install CoffeeScript.\n' + + ' npm install coffee-script --save-dev'); + } else if (extension === '.ls' && !LIVE_SCRIPT_AVAILABLE) { + log.error('You need to install LiveScript.\n' + + ' npm install LiveScript --save-dev'); + } } return process.exit(1); }