我对Grunt.js比较陌生,设置很容易,但现在我有2个问题:1)首先,如何在给定的源文件夹中跟踪任何文件夹?例如,images文件夹本身可能包含图像,以及包含图像的文件夹和包含图像的文件夹等。2)是否有一种方法来观察图像在它的主要(构建)文件夹?没有任何永久循环…
这是我当前的配置:
module.exports = function(grunt) {
grunt.initConfig({
jsDir: 'sources/js/',
jsDistDir: 'public/js/',
cssDir: 'sources/css/',
cssDistDir: 'public/css/',
concat: {
js: {
src: ['<%=jsDir%>*.js'],
dest: '<%=jsDistDir%>javascript.js'
},
css: {
src: ['<%=cssDir%>*.css'],
dest: '<%=cssDistDir%>styles.css'
}
},
min: {
dist: {
src: ['<%= concat.js.dest %>'],
dest: '<%=jsDistDir%>javascript.js'
}
},
cssmin: {
dist: {
src: ['<%= concat.css.dest %>'],
dest: '<%=cssDistDir%>styles.css'
}
},
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'sources/images/',
src: ['**/*.{png,jpg,gif}'],
dest: 'public/images/'
}]
}
},
watch: {
min: {
files: ['<%=jsDir%>*.js'],
tasks: ['concat:js', 'min']
},
cssmin: {
files: ['<%=cssDir%>*.css'],
tasks: ['concat:css', 'cssmin']
},
imagemin: {
files: ['sources/images/**/*.{png,jpg,gif}'],
tasks: ['imagemin']
}
}
});
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-yui-compressor');
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', [
'concat',
'min',
'cssmin',
'imagemin',
'watch'
]);
};
谢谢!
问题1):
表达式**/*
就是这样做的。(参见imagemin> dynamic> files> src)。在concat部分,你可以这样写src: ['<%=jsDir%>**/*.js'],
问题2):使用一个监视任务:
Install: npm install grunt-contrib-watch --save-dev
(--save-dev
)表示将依赖项写入包。json文件)
在Gruntfile.js中的配置:
(function () {
'use strict';
}());
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt); // auto load grunt tasks
var globalConfig = {
jsPath: 'js/',
cssPath: 'css/',
scssPath: 'scss/',
};
grunt.initConfig({
globalConfig: globalConfig,
pkg: grunt.file.readJSON('package.json'),
concat: {
// conf goes here
},
// your other tasks go here
imagemin: {
// conf goes here
},
watch: {
dev:{
files: ['<%= globalConfig.jsPath %>_*.js', '<%= globalConfig.scssPath %>**/*.scss'],
tasks: ['concat','imagemin', 'yourothertasks']
}
}
});
grunt.registerTask('default', ['concat', 'imagemin', 'yourothertasks', 'watch:dev']);
};