Grunt只运行一个任务

时间:2016-03-08 15:08:50

标签: gruntjs

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

我的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 个答案:

答案 0 :(得分:2)

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

即可,只需将sass任务添加到watch,每当files更改时,task都会运行。

或者,不要将watch注册为任务!您可以将sass设置为默认的grunt任务,只需键入grunt watch即可启动监视任务。

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