【问题标题】:Grunt only running one taskGrunt 只运行一项任务
【发布时间】:2016-03-08 15:08:49
【问题描述】:

这是我第一次尝试设置 Grunt。我看到一次只有两个已定义任务中的一个正在运行。如果我将默认任务从“watch”切换到“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']);
}

【问题讨论】:

  • 我假设您希望 watch 任务触发 sass 任务,是吗?如果是这样,请在 watch 对象中的 tasks key (array) 中指定 sass 任务。

标签: gruntjs


【解决方案1】:
watch: {
    css: {
        files: '**/*.scss',
        tasks: ['sass'],
    },
},

就是这样,只需将sass 任务添加到watch,每当files 更改时,task 就会运行。

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

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

【讨论】:

    猜你喜欢
    • 2015-12-24
    • 1970-01-01
    • 2016-10-02
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多