Grunt:从另一个参数中覆盖任务的属性

时间:2017-06-29 07:20:33

标签: gruntjs grunt-html-build

html-build`我试图从我正在创建的自定义任务中传递它的自定义属性。

这是我目前的代码:

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

        htmlbuild: {
            dist: {
              src: 'template.html',
              dest: 'tests/',
              options: {
                    beautify: true,
                    scripts: {
                        mocha: [
                          'assets/scripts/mocha/mocha.min.js',
                          'assets/scripts/mocha/chai.min.js',
                        ]
                    },
                    styles: {
                        mocha: [ 
                            'assets/css/mocha.min.css'
                        ]
                    }
                }
            }
        }
    });


grunt.registerTask('js-test', 'Generate JS test', function(scripts, tests) {
        var htmlBuildScripts = grunt.config.get('htmlbuild.dist.options.scripts');

        htmlBuildScripts.scripts = [scripts];
        htmlBuildScripts.tests = [tests];

        grunt.config.set(htmlBuildScripts, htmlBuildScripts);

        grunt.task.run('htmlbuild');
    });

现在我在CMD中跑步 js-test:assets/scripts/graphicUnitsConvert.js:assets/tests/graphicUnitsConvertTest.js

我收到此警告Warning: str.replace is not a function

1 个答案:

答案 0 :(得分:0)

我找到了答案

grunt.registerTask('js-test', 'Generate JS test', function(scripts, tests) {
        grunt.config.set('htmlbuild.dist.options.scripts.scripts', [scripts.toString()]);
        grunt.config.set('htmlbuild.dist.options.scripts.tests', [tests.toString()]);

        grunt.task.run('htmlbuild');        
    });