【问题标题】:Grunt-scaffold after() function access to prompt answersGrunt-scaffold after() 函数获取提示答案
【发布时间】:2016-05-26 21:42:37
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js build gruntjs scaffolding


    【解决方案1】:

    文档中没有给出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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多