我可以将参数传递给gulp任务吗?

时间:2014-12-05 00:33:31

标签: javascript node.js visual-studio gulp

我在Visual Studio中使用gulp作为客户端构建工具

我有很多在各种项目中都很常见的任务,因此我将它们移到单独的文件中,并在项目gulpfile.js中引用它们,如下所示:

require("../path/to/task/files/fooCommon.js");  // has a task called "fooCommon"

然后在gulpfile.js我将它包装在一个任务中:

gulp.task("foo", ["fooCommon"], function () { });

这很好用,我可以跨项目重用常见任务。

但是,有些任务需要只能在gulpfile.js - 中访问的配置如何将它们作为参数传递给任务?

1 个答案:

答案 0 :(得分:4)

有两件事情浮现在脑海中。第一个是创建任务而不是fooCommon.js,它可以创建一个可用作gulp插件的东西,然后使用它,你只需将配置参数传递给插件。如果在这种情况下不适合,那么您可以将任务逻辑移动到包装函数中,例如

fooCommon.js

module.exports = function(gulp, config){
    gulp.task("fooCommon", function () {
        // Use the config here
    });
};

Gulpfile

// Define whatever config you need
var gulp = require('gulp');

var config = {...}

var taskCreator = require('../path/to/task/files/fooCommon.js');

// Call the function in 'fooCommon.js', which will be passed the config, and
// will create all the tasks you have in common.
taskCreator(gulp, config);

// Register a task depending on the task created by the exported function.
gulp.task("foo", ["fooCommon"], function () { });