2013-06-25 79 views
1

隨着實例的concat插件,我們可以設置我們Gruntfile.js調試和發佈目標:咕嚕-的contrib手錶與調試和發佈目標

grunt.initConfig({ 
    concat: { 
    debug: { 
    }, 
    release: { 
    }, 
    } 

是有可能有多種配置grunt-contrib-watch插件?

做這件事時:

watch: { 
    debug: { 
    options: { 
     livereload: true, 
     nospawn: true 
    }, 
    copy: { 
     files: ['js/app/**/*.js', 'js-amd/**/*.js'], 
     tasks: ['copy'] 
    } 

我得到一個錯誤說verifying property watch.debug.files exists in config

這不起作用或者:

watch: { 
    debug: { 
     options: { 
     livereload: true, 
     nospawn: true 
     }, 
     files: ['js/app/**/*.js', 'js-amd/**/*.js'], 
     tasks: ['copy'], 

     files: ['jade/**/*.jade'], 
     tasks: ['jade:devmock'] 

...因爲我不能有兩個files -arrays或兩個tasks -arrays。 (它會忽略除第一個以外的所有對象files/tasks -pair)

是否有其他方法可以實現我想要的?

回答

1

是的。

配置稍微平坦些。

watch: { 
    debug: { 
     files: ['js/app/**/*.js', 'js-amd/**/*.js'], 
     tasks: ['copy'], 
     options: { 
     livereload: true, 
     nospawn: true 
     } 
    } 
    } 

您將在這裏找到更多的例子:https://github.com/gruntjs/grunt-contrib-watch

+0

對不起,我已經試過了。如果你只有一組文件和一組任務,它就可以工作。如果您有更多問題,請參閱已編輯的問題以瞭解會發生什麼 – Cotten

+0

我得到了一個新答案,那是您想要做什麼? –

1

如果你想兩套文件,你需要一套新的配置

watch: { 
    debug: { 
     files: ['js/app/**/*.js', 'js-amd/**/*.js'], 
     tasks: ['copy'], 
     options: { 
     livereload: true, 
     nospawn: true 
     } 
    }, 
    other-debug: { 
     files: ['js/app/**/*.js', 'js-amd/**/*.js'], 
     tasks: ['copy'], 
     options: { 
     livereload: true, 
     nospawn: true 
     } 
    } 
    } 
0

我用了一個解決辦法是的定義多個手錶目標並重命名手錶任務,如下所示:

watch: { 
    scripts: { 
     files: ['js/**/*.js'], 
     tasks: ['concat', 'uglify'], 
     options: { 
      spawn: false 
     } 
    } 
}, 

// Don't uglify in dev task 
watchdev: { 
    scripts: { 
     files: ['js/**/*.js'], 
     tasks: ['concat'], 
     options: { 
      spawn: false 
     } 
    } 
} 

grunt.loadNpmTasks('grunt-contrib-watch'); 
// Rename watch to watchdev and load it again 
grunt.renameTask('watch', 'watchdev'); 
grunt.loadNpmTasks('grunt-contrib-watch'); 

grunt.registerTask('default', ['watch']); 
grunt.registerTask('dev', ['watchdev']);