2016-07-15 7 views
0

私はGruntを使用して、SASSファイルをCSS経由でCSSでライブ変換しています。Grunt Watchを使用して致命的なエラーが発生し、SASSをCSSに変換する

事がある:私はnormalyコンパスのタスクを実行することができ、CSSは非常によく作成されますが、私はWATCHを使用するとき、私はエラーを得ている:

grunt.util._.contains is not a function

は、ここに私の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']); 
}; 

私は多くの変更をしようとしたが何も役に立たない

Update!

After a long night, solve the problem... Please read my own answer

答えて

5

私はこの問題を解決しました!^4.0 lodashのバージョンはに変更され、にはが含まれ、grunt-contrib-watchには古いlodash構文が使用されています。だから、私はコード内で1行だけを変更しました。ライン116上の node_modules/grunt-contrib-watch/tasks/watch.jsを探す:

旧行:

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

新ライン:今すぐ

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

コンパス/ SASSは魔法のように動作してウォッチ;)私は願っています

それは誰かを助ける!

関連する問題