diff --git a/lib/shared/registerExports.js b/lib/shared/registerExports.js new file mode 100644 index 00000000..09a31d0b --- /dev/null +++ b/lib/shared/registerExports.js @@ -0,0 +1,21 @@ +'use strict'; + +function registerExports(gulpInst, tasks) { + var taskNames = Object.keys(tasks); + + if (taskNames.length) { + taskNames.forEach(register); + } + + function register(taskName) { + var task = tasks[taskName]; + + if (typeof task !== 'function') { + return; + } + + gulpInst.task(taskName, task); + } +} + +module.exports = registerExports; diff --git a/lib/versioned/^3.7.0/index.js b/lib/versioned/^3.7.0/index.js index f0abd8e4..ce8b315d 100644 --- a/lib/versioned/^3.7.0/index.js +++ b/lib/versioned/^3.7.0/index.js @@ -9,6 +9,7 @@ var taskTree = require('./taskTree'); var logTasks = require('../../shared/log/tasks'); var logEvents = require('./log/events'); var logTasksSimple = require('./log/tasksSimple'); +var registerExports = require('../../shared/registerExports'); function execute(opts, env) { var tasks = opts._; @@ -20,12 +21,14 @@ function execute(opts, env) { } // This is what actually loads up the gulpfile - require(env.configPath); + var exported = require(env.configPath); log.info('Using gulpfile', chalk.magenta(tildify(env.configPath))); var gulpInst = require(env.modulePath); logEvents(gulpInst); + registerExports(gulpInst, exported); + // Always unmute stdout after gulpfile is required stdout.unmute(); diff --git a/lib/versioned/^4.0.0-alpha.1/index.js b/lib/versioned/^4.0.0-alpha.1/index.js index 4feb4163..c32b2bbe 100644 --- a/lib/versioned/^4.0.0-alpha.1/index.js +++ b/lib/versioned/^4.0.0-alpha.1/index.js @@ -13,6 +13,7 @@ var logTasks = require('../../shared/log/tasks'); var logEvents = require('../^4.0.0/log/events'); var logSyncTask = require('../^4.0.0/log/syncTask'); var logTasksSimple = require('../^4.0.0/log/tasksSimple'); +var registerExports = require('../../shared/registerExports'); function execute(opts, env) { @@ -29,7 +30,9 @@ function execute(opts, env) { logSyncTask(gulpInst); // This is what actually loads up the gulpfile - require(env.configPath); + var exported = require(env.configPath); + + registerExports(gulpInst, exported); // Always unmute stdout after gulpfile is required stdout.unmute(); diff --git a/lib/versioned/^4.0.0-alpha.2/index.js b/lib/versioned/^4.0.0-alpha.2/index.js index c59f1bdf..a2b76191 100644 --- a/lib/versioned/^4.0.0-alpha.2/index.js +++ b/lib/versioned/^4.0.0-alpha.2/index.js @@ -13,6 +13,7 @@ var logTasks = require('../../shared/log/tasks'); var logEvents = require('../^4.0.0/log/events'); var logSyncTask = require('../^4.0.0/log/syncTask'); var logTasksSimple = require('../^4.0.0/log/tasksSimple'); +var registerExports = require('../../shared/registerExports'); function execute(opts, env) { @@ -29,7 +30,9 @@ function execute(opts, env) { logSyncTask(gulpInst); // This is what actually loads up the gulpfile - require(env.configPath); + var exported = require(env.configPath); + + registerExports(gulpInst, exported); // Always unmute stdout after gulpfile is required stdout.unmute(); diff --git a/lib/versioned/^4.0.0/index.js b/lib/versioned/^4.0.0/index.js index 782ecc42..01aa0e0b 100644 --- a/lib/versioned/^4.0.0/index.js +++ b/lib/versioned/^4.0.0/index.js @@ -13,6 +13,7 @@ var logTasks = require('../../shared/log/tasks'); var logEvents = require('./log/events'); var logSyncTask = require('./log/syncTask'); var logTasksSimple = require('./log/tasksSimple'); +var registerExports = require('../../shared/registerExports'); function execute(opts, env) { @@ -29,7 +30,9 @@ function execute(opts, env) { logSyncTask(gulpInst); // This is what actually loads up the gulpfile - require(env.configPath); + var exported = require(env.configPath); + + registerExports(gulpInst, exported); // Always unmute stdout after gulpfile is required stdout.unmute();