我有一个工作流程:
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks
grunt.initConfig({
sass: {
options: {
sourceMap: true
},
dist: {
}
},
watch: {
files: ['src/*.scss'],
tasks: ['sass']
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ["sass"]);
};在运行grunt watch并更改src/*.scss文件后,我得到以下内容:
文件"src/main.scss“更改。运行"sass:dist“(sass)任务完成,没有错误。在0.949秒在2016年2月2日星期二完成11:25 11 GMT+0100 (CET) -等待.
我的问题是:生成的文件在哪里?如何指定目标文件?
我也尝试过使用这个工作流:
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks
grunt.initConfig({
sass: {
options: {
sourceMap: true
},
dist: {
files: [{
expand: true,
cwd: 'src',
src: ['*.scss'],
dest: '.',
ext: '.css'
}]
}
},
watch: {
files: ['*.scss'],
tasks: ['sass']
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ["sass"]);
};运行也是grunt watch,但是当我更改src/*.scss时,什么都不会发生。
编辑:这是我在回答后的咕噜文件:
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks
grunt.initConfig({
sass: {
options: {
sourceMap: true
},
dist: {
files: [{
expand: true,
cwd: '.',
src: ['src/**/*.scss'],
dest: '.',
ext: '.css'
}]
}
},
watch: {
files: ['src/**/*.scss'],
tasks: ['sass']
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ["sass"]);
};发布于 2016-02-10 14:13:58
假设您有一个main.scss文件,而@import是来自_sassfile.scss的layout文件夹。听起来不错吗?
sass: {
options: {
sourceMap: true,
outFile: 'dist/main.css.map' // so you get a sourceMap file
},
dist: {
files: {
'dist/main.css' : 'src/main.scss'
}
}
},
watch: {
files: ['src/layout/*.scss'],
tasks: ['sass']
}这意味着grunt watch将监视各个组件sass/scss文件中的更改,然后它将运行sass任务,该任务将将所有内容处理到dist/main.css。
如果您只是使用一个Sass文件,也就是说,main.scss是您唯一的文件,或者如果您要将附加的_partial.scss Sass文件放置在同一个目录中,则可以将监视命令保持为
watch: {
files: ['src/*.scss'],
tasks: ['sass']
}最后一件事。用于Sass文件的cwd,src/不会转到您为watch指定的files。因此,您的Gruntfile正在寻找第二个工作流中src/上方的一个目录中的文件更改。
发布于 2016-02-10 00:03:18
您需要指定一个输出:
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt); // npm install --save-dev load-grunt-tasks
grunt.initConfig({
sass: {
options: {
sourceMap: true
},
dist: {
files: {
//output added here
'dist/main.css' : 'src/*.scss'
}
}
},
watch: {
files: ['src/*.scss'],
tasks: ['sass']
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ["sass"]);
};注咕哝声也应该支持所有的标准配置选项。
使用原始配置,任务成功运行,但没有找到要处理的任何文件。如果我使用grunt --debug --verbose运行,就会得到:
[D] Task source: /Users/edeustace/dev/github/edeustace/stack-overflow-questions/grunt-watch/node_modules/grunt-sass/tasks/sass.js
Running "sass:dist" (sass) task
[D] Task source: /Users/edeustace/dev/github/edeustace/stack-overflow-questions/grunt-watch/node_modules/grunt-sass/tasks/sass.js
Verifying property sass.dist exists in config...OK
File: [no files]我想您可以认为这是咕哝声中的一个bug。
https://stackoverflow.com/questions/35151056
复制相似问题