javascript - 以编程方式将参数传递给 grunt 任务?

标签 javascript node.js gruntjs

我有一个调用其他 grunt 任务的 grunt 任务。我想用程序确定的参数调用一个子任务。这可能吗?我花了一些时间在 lib/grunt.jslib/grunt/task.js 周围挖掘,但无法弄清楚。

我正在使用 grunt-compass,并在 Gruntfile.js 中指定了以下参数:

compass: {
  default_options: {
    src: 'components/201',
    dest: 'build',
    require: ['zurb-foundation']
  }
}

我希望能够在运行时覆盖它们:

tasks/my-task.js:

// simplified example
module.exports = function(grunt) {
  grunt.registerTask('foo', 'bar', function() {
    var chooseDest = doWork();
    grunt.task.run('compass', {src: 'src', dest: chooseDest});
  });
};

供引用:

$ grunt --version
grunt-cli v0.1.6
grunt v0.4.0rc6

最佳答案

我想通了。使用 <%= %> Gruntfile.js 中的语法:

compass: {
  default_options: {
    src: 'components/<%= myTask.src %>',
    dest: 'build',
    require: ['zurb-foundation']
  }
}

然后你可以在你的任务中设置它:

grunt.config.set('myTask.src', getSrc());

关于javascript - 以编程方式将参数传递给 grunt 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780622/

相关文章:

javascript - django javascript 行为异常

javascript - 将 JWplayer 嵌入代码从数据库集合加载到meteor.js 中的页面模板中

node.js - GraphQL 错误 : Must provide name

gruntjs - Electron 默认应用程序未更改

javascript - 用于将多个 Jquery 就绪函数组合成单个就绪函数的 Grunt 任务

css - 如何使用 grunt-recess 编译 2 个独立的 LESS 文件

javascript - 需要相机叠加(半透明)图片HowTo

javascript - 如何使用 WebdriverIO 返回一个新的有效页面对象?

javascript - 使用 webpack 为浏览器和 Node 构建

javascript - 将先前 promise 中的数据放入新 promise 中