我想在Grunt的帮助下自动化我的工作流程。我已经完成了所有设置,但是监视任务不起作用 - 我可以启动它,但它不会检测到更改。问题确实必须出现在监视任务中,因为我可以手动触发sass任务,并且可以正确编译而没有问题。
My Gruntfile如下所示:
module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
sass: {
dist: {
options: {
'style': 'compressed'
},
expand: true,
cwd: './sass/',
src: 'style.scss',
dest: './css/',
ext: '.css'
},
dev: {
options: {
'style': 'expanded',
},
expand: true,
cwd: './sass/',
src: 'style.scss',
dest: './css/',
ext: '.css'
}
},
watch: {
sass: {
files: ['<%= sass.dev.src %>'],
tasks: ['default']
}
}
});
grunt.registerTask('default', ['sass:dev']);
};
项目目录中的结构如下所示:
Gruntfile.js
index.html
package.json
css
> style.css (created by sass task)
node_modules
> all required modules
sass
> style.scss
对我而言,一切看起来都不错,但由于它不起作用,一定是错的。我的猜测是“扩展”选项后面的路径已经关闭,尽管我已经尝试过其他不起作用的结构。
答案 0 :(得分:2)
因为sass.dev.src
等于src: 'style.scss'
。使用files: ['<%= sass.dev.src %>']
配置的观看任务将尝试观看./style.scss
和不 ./sass/style.scss
。
观看任务有一个cwd
选项(options:{cwd:'./sass'}
),但可能更容易将其设置为观看files: ['sass/*.scss']
。