Grunt任务一个接一个地运行

时间:2014-10-13 05:02:45

标签: gruntjs

请帮助我..我是新来的咕噜声。我必须一个接一个地执行咕噜声任务。当我执行Grunt文件时,我试图逐个执行['clean','writefile','concat','requirejs'],因为写文件有助于为requier创建动态json。

当我第一次执行时,grunt会给我错误,并且第二次运行时没有错误,因为在路径中创建了json文件。我试过grunt.task.run()但我无法得到它

    module.exports = function (grunt) {
        'use strict';
        grunt.initConfig({

            // Before generating any new files, remove any previously-created files.
            clean: {
                tests: ['rjs/build.json','frontend-built']
            },
            writefile: {
                json_value: {
                    options: {
                        data: 'frontend/config.json'
                    },
                    src: 'rjs/value.hbs',
                    dest: 'rjs/build.json'
                }
            },
            requirejs: {
                compile: {
                    options:grunt.file.readJSON('rjs/build.json')
                }
            },
            concat: {
                dist: {
                    files: {
                        'frontend/theme/css/theameA.css': ['frontend/theme/css/common/**/*.css','frontend/theme/css/lib/**/*.css','frontend/theme/css/theme_a/**/*.css'],
                        'frontend/theme/css/theameB.css': ['frontend/theme/css/common/**/*.css','frontend/theme/css/lib/**/*.css','frontend/theme/css/theme_b/**/*.css']

                    }
                }
            }

        });
        grunt.loadNpmTasks('grunt-contrib-clean');
        grunt.loadNpmTasks('grunt-writefile');
        grunt.loadNpmTasks('grunt-contrib-concat');
        grunt.loadNpmTasks('grunt-contrib-requirejs');
        grunt.registerTask('default', ['clean', 'writefile','concat','requirejs']);

    };

1 个答案:

答案 0 :(得分:1)

好的问题是配置代码在任务运行之前被处理,所以即使它没有出错,也不是正确的行为。

尝试通过另一个自定义任务动态设置requirejs配置:

   module.exports = function (grunt) {

    'use strict';
    grunt.initConfig({

        // Before generating any new files, remove any previously-created files.
        clean: {
            tests: ['rjs/build.json','frontend-built']
        },
        writefile: {
            json_value: {
                options: {
                    data: 'frontend/config.json'
                },
                src: 'rjs/value.hbs',
                dest: 'rjs/build.json'
            }
        },
        concat: {
            dist: {
                files: {
                    'frontend/theme/css/theameA.css': ['frontend/theme/css/common/**/*.css','frontend/theme/css/lib/**/*.css','frontend/theme/css/theme_a/**/*.css'],
                    'frontend/theme/css/theameB.css': ['frontend/theme/css/common/**/*.css','frontend/theme/css/lib/**/*.css','frontend/theme/css/theme_b/**/*.css']

                }
            }
        }

    });
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-writefile');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-requirejs');
    grunt.registerTask('setRjsConfig', function() {
         grunt.config('requirejs.options.compile', grunt.file.readJSON('rjs/build.json'));
    });
    grunt.registerTask('default', ['clean', 'writefile','concat', 'setRjsConfig', 'requirejs']);

};