相关疑难解决方法(0)

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

我有一个咕噜咕噜的任务,调用其他grunt任务.我想用编程确定的参数调用子任务.这可能吗?我花了一些时间挖掘lib/grunt.jslib/grunt/task.js,但无法弄明白.

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

compass: {
  default_options: {
    src: 'components/201',
    dest: 'build',
    require: ['zurb-foundation']
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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});
  });
};
Run Code Online (Sandbox Code Playgroud)

以供参考:

$ grunt --version
grunt-cli v0.1.6
grunt v0.4.0rc6
Run Code Online (Sandbox Code Playgroud)

javascript node.js gruntjs

46
推荐指数
1
解决办法
2万
查看次数

在initConfig()中访问Grunt配置数据

如何访问Grunt配置属性siteproject.json在config属性值指定的路径上读取文件?

grunt.registerTask('build', function(target) {
  grunt.config('site', target);
  grunt.task.run('foo:dist', 'bar:dist');
});

grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  site: grunt.file.readJSON('./sites/' + grunt.config('site') + '/project.json')
});
Run Code Online (Sandbox Code Playgroud)

咕噜-CLI:

grunt build:sitename

>> Error: Unable to read "./sites/undefined/project.json"
Run Code Online (Sandbox Code Playgroud)

使用文档中的示例,我也试过这个:

grunt.registerTask('global', 'site', function(prop, value) {
  global[prop] = val;
});

grunt.registerTask('build', ['foo:dist', 'bar:dist']);

grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  site: grunt.file.readJSON('./sites/' + global.site + '/project.json')
});
Run Code Online (Sandbox Code Playgroud)

咕噜-CLI:

grunt global:site:sitename

>> Error: Unable to read "./sites/undefined/project.json"
Run Code Online (Sandbox Code Playgroud)

更新:

使用@FelixKling答案作为指导,我取得了一些进展:

grunt.registerTask('build', function(target) {
  grunt.config.set('target', target);
  grunt.config.set('site', grunt.file.readJSON('./sites/' + grunt.config.get('target') + '/project.json')); …
Run Code Online (Sandbox Code Playgroud)

javascript gruntjs

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

gruntjs ×2

javascript ×2

node.js ×1