参数绑定在grunt任务中

时间:2015-05-15 09:05:23

标签: gruntjs grunt-contrib-watch

我对grunt任务有问题:

 watch: {
      jshint: {
        files: ['Gruntfile.js', '<%= version %>/src/**/*.js', '<%= version %>/src/*.js'],
        tasks: ['jshint', 'concat', 'uglify'], 
        options: {
          livereload: true
        }
      }
    }, 

我在一个函数中调用它

grunt.registerTask('server', 'A task that runs server', function(version) {
    if (arguments.length === 0) {
      grunt.log.writeln("Please specify Version in arguments (grunt "+this.name+":version)");
    } else {
      grunt.log.writeln(this.name + ", " + version );
      grunt.config.set('version', version);
      grunt.task.run(['jshint', 'concat', 'uglify', 'open', 'connect', 'watch']); 
    }
  });

问题是监视任务可以看到版本 但观看中的任务没有绑定版本 - 这里

tasks: ['jshint', 'concat', 'uglify'], 

结果:

0.1\src\myjs.js" changed.
\src\new.js cannot write file

1 个答案:

答案 0 :(得分:0)

解决方案是致电

watch: {
      jshint: {
        files: ['Gruntfile.js', '<%= version %>/src/**/*.js', '<%= version %>/src/*.js'],
        tasks: ['jshint:<%= version %>', 'concat', 'uglify'], 
        options: {
          livereload: true
        }
      }
    },

使用'jshint:&lt;%= version%&gt;'

不知道为什么会发生这种情况但是有效