自定义grunt任务,将来自不同文件夹的多个JS文件连接成一个JS文件

时间:2016-05-12 06:51:59

标签: javascript gruntjs grunt-contrib-concat

我正在编写自定义grunt任务,将来自不同文件夹的多个JS文件连接成一个JS文件。当我运行grunt命令时,它显示“正在运行'read-folder-concat'任务。之后,没有任何反应。我无法在控制台上看到任何错误。我完全被困在这里。

有两个文件,一个是Gruntfile.js& CONCAT-task.js。我在这里共享这些文件的代码。

Gruntfile.js

// Grunt configuration file
(function () {
    'use strict';

    module.exports = function (grunt) {

        grunt.initConfig({
            pkg: grunt.file.readJSON('package.json'),

            concat: {
                options: {
                    separator: ';'
                }
            }                        
        });

        //load grunt tasks
        grunt.loadNpmTasks('grunt-contrib-concat');
        grunt.task.loadTasks('./tasks');

        //register grunt default task
        grunt.registerTask('default', ['read-folder-concat']);

    };
})();

concat-task.js

(function () {

    'use strict';

    module.exports = function (grunt) {

        function readFolderAndConcat(pathArr) {

            // get the current concat config
            var i,
                src = [],
                concat = grunt.config.get('concat') || {};

            for (i = 0; i < pathArr.length; i++) {
                grunt.file.expand(pathArr[i]).forEach(function (dir) {
                    src.push(dir);
                });
            }

            // set the config for this modulename-directory
            concat =  {
                dist: {
                    src: [src.join(",")],
                    dest: 'app_min_safe/app/min/app.js'
                }
            };

            // save the new concat configuration
            grunt.config.set('concat', concat);

            // when finished run the concatinations
            grunt.task.run('concat');
        }

        grunt.registerTask("read-folder-concat", "read folder dynamically and concat it.", function () {

            readFolderAndConcat(["app/*.js", "app/modules/js/*/*.js"]);

        });
    };
})();

请帮我理解我的concat任务中的问题。

0 个答案:

没有答案