[英]How can I make Grunt.js imagemin to track *any* folder and possibly store images in one place?
我对Grunt.js相对较新,设置非常简单,但是现在我遇到了两个问题:1)首先,如何跟踪给定source文件夹中的任何文件夹? 例如,图像文件夹本身可能包含图像,以及包含图像的文件夹和具有图像的文件夹等的文件夹。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>动态>文件> src)。 在concat部分中,您可以执行类似src: ['<%=jsDir%>**/*.js'],
问题2):使用监视任务:
安装: npm install grunt-contrib-watch --save-dev
( --save-dev
表示将依赖关系写入package.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']);
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.