Grunt-scaffold after()函数访问提示答案

时间:2016-05-26 21:42:38

标签: javascript node.js build gruntjs scaffolding

The docs NPM包grunt-scaffold在其after()属性/函数上缺少任何信息。我​​有一个grunt文件,它为新脚本创建一个新目录并复制样板文件从指定的模板文件夹中将文件放入其中。希望完成grunt scaffold:new_script命令并让它注销新生成的文件夹的位置。

Gruntfile.js

  module.exports = function(grunt) {
  grunt.initConfig({
  scaffold: {
    new_script: {
        options: {
            questions: [{
                name: 'script_name',
                type: 'input',
                message: 'Script name, catterpillar_case?(e.g. \'new_script\'):'
            }],
            template: {
                "scripts/etl_template/": "scripts/{{script_name}}/",
            },
            after: function(){

                console.log("New script generated in new folder scripts/{{script_name}}")
            }
        }
      }
    }
  });
  grunt.loadNpmTasks('grunt-scaffold');
  grunt.registerTask('default', ['scaffold']);
};

但是,输出是

-bash-4.1$ grunt scaffold:new_script
Running "scaffold:new_script" (scaffold) task
? Script name, catterpillar_case?(e.g. 'new_script'): test_grunt
New script generated in new folder scripts/{{script_name}}
Done.

这不会像创建scripts/test_grunt文件夹时那样替换字符串!你可以看到the documentation几乎不存在after()功能,我想知道我是否可以使用javascript“system argume

1 个答案:

答案 0 :(得分:0)

after()函数的文档中未给出示例,但如果您使用与filter()给出的示例中相同的结果参数,则可以通过其名称访问答案值。

<强> Gruntfile.js

  module.exports = function(grunt) {
  grunt.initConfig({
  scaffold: {
    new_script: {
        options: {
            questions: [{
                name: 'script_name',
                type: 'input',
                message: 'Script name, catterpillar_case?(e.g. \'new_script\'):'
            }],
            template: {
                "scripts/etl_template/": "scripts/{{script_name}}/",
            },
            after: function(result){
                console.log("New script generated in new folder scripts/" + result.script_name)
            }
        }
      }
    }
  });
  grunt.loadNpmTasks('grunt-scaffold');
  grunt.registerTask('default', ['scaffold']);
};

<强>输出

-bash-4.1$ grunt scaffold:new_script
Running "scaffold:new_script" (scaffold) task
? Script name, catterpillar_case?(e.g. 'new_script'): test_grunt
New script generated in new folder scripts/test_grunt
Done.