我正在使用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']);
};
我尝试了很多改变,但没有任何帮助
更新!
经过漫长的一夜,解决问题 ...请阅读我自己的答案
答案 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的手表就像一个魅力;)
我希望它有所帮助!