2016-03-08 71 views
0

这是我第一次尝试设置Grunt。我看到一次只有两个定义的任务中的一个正在运行。如果我将默认任务从“监视”切换到“sass”,则只有sass任务会运行(反之亦然)。所以这让我觉得这两个任务的代码都是正确的,但也许需要其他一些配置设置或registerTask类型的函数。Grunt只运行一项任务

我的Gruntfile.js会导致这个问题吗?

Gruntfile.JS

module.exports = function(grunt){ 

    grunt.initConfig({ 
     pkg: grunt.file.readJSON('package.json'), 
// --- SASS 

     sass:{ 
      dist:{ 
       options:{ 
        style:'expanded', 
        sourcemap:'none', 
       }, 
       files:{ 
        'style.css':'SCSS/style.scss' 
       } 
      } 
     }, 

// --- WATCH 

     watch:{ 
      css:{ 
       files: '**/*.scss', 
      } 
     }, 
    }); 

    grunt.loadNpmTasks('grunt-contrib-sass'); 
    grunt.loadNpmTasks('grunt-contrib-watch'); 
    // grunt.registerTask('default',['sass']); 
    grunt.registerTask('default',['watch']); 
} 
+1

我假设你希望监视任务触发sass任务,是吗?如果是这样,请在监视对象中指定[任务键(数组)]中的sass任务(https://github.com/gruntjs/grunt-contrib-watch#tasks)。 – steveax

回答

2
watch: { 
    css: { 
     files: '**/*.scss', 
     tasks: ['sass'], 
    }, 
}, 

就是这样,只是sass任务添加到watch并且每当files改变,task将会运行。

或者,请不要将watch作为任务注册!您可以将sass设置为默认的咕噜声任务,只需输入grunt watch即可启动观看任务。

现在,如果您使用的是类似VS中的Nuget包,我理解注册手表,但如果是这种情况,我建议尝试Powershell,至少为了方便安装新软件包,节点模块,获取调试消息对于JS错误等。

+0

这对我有用。谢谢你的帮助! – ThisBetterWork