繁体   English   中英

如何使Grunt.js imagemin跟踪* any *文件夹,并可能将图像存储在一个地方?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM