我只是在学习 Grunt 。我将使用罗盘进行垂直节奏和图像精灵生成,使用autoprefixer为css3样式添加前缀。
这是我的 Gruntfile.js 。
module.exports = function(grunt) {
var globalConfig = {
sassDir: 'sass',
cssDir: 'css'
};
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
// Project configuration.
grunt.initConfig({
globalConfig: globalConfig,
pkg: grunt.file.readJSON('package.json'),
compass: {
dev: {
options: {
sassDir: '<%= globalConfig.sassDir %>',
cssDir: '<%= globalConfig.cssDir %>'
}
}
},
autoprefixer: {
dev: {
options: {
browsers: ['last 2 versions']
},
src: '<%= globalConfig.cssDir %>/style.css',
dest: '<%= globalConfig.cssDir %>/style.css'
}
},
watch: {
compass: {
files: ['<%= globalConfig.sassDir %>/**/*.scss'],
tasks: ['compass:dev'],
},
autoprefixer: {
files: ['<%= globalConfig.cssDir %>/style.css'],
tasks: ['autoprefixer:dev']
},
livereload: {
options: { livereload: true },
files: ['<%= globalConfig.cssDir %>/style.css']
}
}
});
// Default task(s) that will be run by invoking 'grunt' w/o args
grunt.registerTask('styles:dev', ['compass', 'autoprefixer']);
grunt.registerTask('default', ['styles:dev', 'watch']);
};
但每当我跑
grunt
除了grunt-contrib-watch无休止地调用grunt-autoprefixer之外,一切都按预期工作。
我刚开始学习 Grunt 。这可能是我的 Gruntfile.js
上的错误配置我希望你能在这里帮助我。
答案 0 :(得分:10)
将您的任务配置更改为:
watch: {
compass: {
files: ['<%= globalConfig.sassDir %>/**/*.scss'],
tasks: ['compass:dev', 'autoprefixer:dev']
},
livereload: {
options: { livereload: true },
files: ['<%= globalConfig.cssDir %>/style.css']
}
}
基本上,grunt-contrib-watch将在文件更新时运行任务,并且因为源文件和目标文件相同,所以它将其转换为无限循环。一旦您的指南针任务构建了您的CSS,只需运行自动修复。希望这可以帮助。 : - )