0

我的 gruntfile.js 中有这样的内容:

        sass: {
            app: {
                files: {
                 '<%= meta.cssDist %>style.css': '<%= meta.cssSrc %>style.scss'
                }
            },
            options: {
                style: 'nested'
            }
    },
grunt.registerTask('default', ['sass']);

但这只是一项任务。如何组合两个或多个任务?正如我在一些 grunt 模块中所知道的,您可以像这样组合多个任务:

            sass: {
              dev: {
                 app: {
                    files: {
                      '<%= meta.cssDist %>style.css': '<%= meta.cssSrc %>style.scss'
                    }
                 },
                 options: {
                    style: 'nested'
                 }
              },

              production: {
                 app: {
                    files: {
                      '<%= meta.cssDist %>style.css': '<%= meta.cssSrc %>style.scss'
                    }
                 },
                 options: {
                    style: 'compressed',
                    sourcemap: 'none'
                 }
              }
    },
    // and then register tasks
    grunt.registerTask('dev', ['sass:dev']);
    grunt.registerTask('prod', ['sass:production']);

但这不起作用,GruntJs 没有显示错误,也没有编译 sass。这有什么问题?

4

2 回答 2

0

有一个肮脏的黑客,但它至少对我有用。但一开始我会建议迁移到 Gulp 那里,这样简单的任务就是小菜一碟。因此,您将在 initConfig 函数中为 sass 创建默认配置,然后我将使用回调函数注册任务,所有魔法都会发生。在那里您将覆盖默认设置,最后您可以运行 grunt sassTask 或任何名称。

grunt.registerTask("sassTask", function() {
    grunt.config.data.sass = {
        dist: {
            files: {
                'test.css': 'test.scss'
            }
        }
    };
    grunt.task.run('sass');
});
于 2015-07-28T08:57:04.177 回答
0

我发现我的错误,它会以这种方式运行这些任务:

sass: {
dev: {
    files: {
        '<%= meta.cssDist %>style.css': '<%= meta.cssSrc %>style.scss'
    },
    options: {
        style: 'nested'
    }
},
production: {
    files: {
        '<%= meta.cssDist %>style.css': '<%= meta.cssSrc %>style.scss'
    }
    options: {
        style: 'compressed',
        sourcemap: 'none'
    }
}
}
grunt.registerTask('dev', ['sass:dev']);
grunt.registerTask('prod', ['sass:production']);
于 2015-07-28T08:58:43.793 回答