diff --git a/bin/lessc b/bin/lessc index 93d9d849..ae617e7b 100755 --- a/bin/lessc +++ b/bin/lessc @@ -2,9 +2,9 @@ var path = require('path'), fs = require('fs'), - mkdirp = require('mkdirp'), sys = require('util'), - os = require('os'); + os = require('os'), + mkdirp; var less = require('../lib/less'); var args = process.argv.slice(1); @@ -129,9 +129,14 @@ if (! input) { var ensureDirectory = function (filepath) { var dir = path.dirname(filepath), - cmd = mkdirp && mkdirp.sync || fs.mkdirSync, + cmd, existsSync = fs.existsSync || path.existsSync; if (!existsSync(dir)) { + if (mkdirp === undefined) { + try {mkdirp = require('mkdirp');} + catch(e) { mkdirp = null; } + } + cmd = mkdirp && mkdirp.sync || fs.mkdirSync; cmd(dir); } }; diff --git a/lib/less/index.js b/lib/less/index.js index 20a6c8e4..4005a74f 100644 --- a/lib/less/index.js +++ b/lib/less/index.js @@ -1,7 +1,7 @@ var path = require('path'), sys = require('util'), url = require('url'), - request = require('request'), + request, fs = require('fs'); var less = { @@ -137,7 +137,10 @@ less.Parser.importer = function (file, paths, callback, env) { var isUrl = isUrlRe.test( file ); if (isUrl || isUrlRe.test(paths[0])) { - + if (request === undefined) { + try { request = require('request'); } + catch(e) { request = null; } + } if (!request) { callback({ type: 'File', message: "optional dependency 'request' required to import over http(s)\n" }); return;