使用Grunt Watch将SASS转换为CSS的致命错误

时间:2016-07-15 06:31:24

标签: gruntjs task contains watch compass

我正在使用Grunt通过观看将我的SASS文件转换为CSS。

问题是:我可以正常运行Compass任务,CSS创建得非常好,但是当我使用WATCH时我得到了错误:

  

grunt.util ._。contains不是函数

这是我的package.json

{
    "name": "myName",
    "description": "myDesc",
    "author": "mySelf",
    "version": "0.0.1",
    "private": true,
    "devDependencies": {
        "grunt": "^1.0.1",
        "grunt-contrib-compass": "^1.1.1",
        "grunt-contrib-jshint": "^0.10.0",
        "grunt-contrib-nodeunit": "~0.4.1",
        "grunt-contrib-sass": "^1.0.0",
        "grunt-contrib-uglify": "^0.5.1",
        "grunt-contrib-watch": "^0.4.4"
    }
}

这是我的Gruntfile.js

module.exports = function(grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        compass: {
            dist: {
                options: {
                    config: 'config.rb'
                }
            }
        },
        watch: {
            css: {
                files: 'assets/**/*.{scss,sass}',
                tasks: ['compass']
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-compass');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.registerTask('default',['compass','watch']);
};

我尝试了很多改变,但没有任何帮助

  

更新!

     

经过漫长的一夜,解决问题 ...请阅读我自己的答案

1 个答案:

答案 0 :(得分:6)

我解决了这个问题! ^ 4.0 lodash版本已将包含更改为包含grunt-contrib-watch使用旧的lodash语法。所以我在代码中只更改了一行。找 第116行node_modules/grunt-contrib-watch/tasks/watch.js

旧行:

  

if(!grunt.util ._。包含(target.options.event,'all')&&!grunt.util ._。包含 (target.options.event,status)){

新行:

  

if(!grunt.util ._。包含(target.options.event,'all')&&!grunt.util ._。包含 (target.options.event,status)){

现在,带有指南针/ SASS的手表就像一个魅力;)

我希望它有所帮助!