似乎我的项目grunt文件中的监视任务正在启动,然后立即退出。
请查看附带的截图。
请找到我的Gruntfile.js的代码;
module.exports = function (grunt) {
grunt.initConfig({
sass: {
options: {
cacheLocation: '.sass-cache'
},
prod: {
options: {
style: 'compressed'
},
files: [{
'assets/css/dist/main.min.css': 'assets/css/sass/main.scss'
}]
},
dev: {
options: {
style: 'nested'
},
files: [{
'assets/css/main.css': 'assets/css/sass/main.scss'
}]
}
},
imageoptim: {
files: [
'img/flat',
'img/flat/**'
],
options: {
imageAlpha: true,
jpegMini: true,
quitAfter: true
}
},
uglify: {
options: {
mangle: true,
compress: true
},
jsCompress: {
files: {
'js/dist/main.min.js': ['js/src/script1.js', 'js/src/script2.js']
}
}
},
concat: {
options: {
separator: ';',
},
dist: {
src: ['js/src/script1.js', 'js/src/script2.js'],
dest: 'js/dist/main.min.js',
}
},
watch: {
sassWatch: {
files: 'css/sass/**/*.scss',
tasks: ['sass:prod', 'sass:dev'],
},
JsWatch: {
files: ['js/modules/script1.js', 'js/modules/script2.js'],
tasks: ['uglify:jsCompress', 'concat:dist'],
}
},
notify: {
sassNotify: {
options: {
title: "Task Complete",
message: "Your Sass has been compiled and concatanatated!"
}
},
jsNotify: {
options: {
title: "Task Complete",
message: "Your JS has been minified and concatanatated!"
}
},
imageNotify: {
options: {
title: "Task Complete",
message: "All images have been compressed"
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-imageoptim');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-notify');
grunt.registerTask('sassNotify', 'watch:sassWatch');
grunt.registerTask('jsNotify', 'watch:jsWatch');
grunt.registerTask('imageNotify', 'imageoptim');
};
有谁知道为什么会这样?
亲切的问候,
乙!
答案 0 :(得分:6)
我的问题是它正在观看我有100多个图像文件,它正在跟踪所以我只是指定它应该观看(js,html,scss,css)。
答案 1 :(得分:1)
我注意到这与grunt-contrib-watch
的旧版本无法正常工作。就我而言,我使用的是grunt-contrib-watch
V0.4.4。
尝试运行:
,将grunt-contrib-watch
包更新到最新版本
npm install grunt-contrib-watch@latest --save-dev
然后再次尝试执行您的任务。
答案 2 :(得分:1)
我遇到了这个问题,正在寻找答案。在我的情况下,我的files:
匹配模式中有一个拼写错误导致它找不到要监视和中止的目录,尽管错误消息本来不错。我注意到,在sass
任务中,您使用assets/
添加文件,但不在观察任务中。
我知道你可能会继续前进,但希望将来可以帮助某人。
答案 3 :(得分:1)
尝试类似
的内容 ....
watch: {
dev: {
files: 'assets/sass/**/*{.scss,.js}',
tasks: ['sass:dev','uglify:jsCompress'],
},
},
...
});
grunt.registerTask('dev', 'watch:dev');
watch task in my gruntfile可能会有所帮助。
答案 4 :(得分:-3)
以下是我的Gruntfile.js的样子,并且工作正常:
module.exports = function(grunt) {
grunt.initConfig({
sass: { // Task
dist: { // Target
options: { // Target options
style: 'expanded'
},
files: { // Dictionary of files
'css/styles.css': './sass/site.scss'
}
}
},
watch: {
sass: {
files: ['sass/**/*.scss'],
tasks: ['sass']
},
organic: {
files: ['../organic-css/**/*.scss'],
tasks: ['sass']
}
}
});
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['sass', 'watch']);
}
也许您需要注册“默认”任务。