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

标签 javascript node.js build gruntjs scaffolding

The docs对于 NPM 包 grunt-scaffold 缺乏关于其 after() 属性/函数的任何信息。我​​有一个 grunt 文件,它为新脚本创建一个新目录,并且将样板文件从指定的模板文件夹复制到其中。我们的愿望是完成 gruntscaffold: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

最佳答案

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

关于javascript - Grunt-scaffold after() 函数访问提示答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37471499/

相关文章:

javascript - 在 Node.js 中编写和加载模块的正确方法?

javascript - 如何使用 pid 杀死 Node.js 子进程?

android - 仅使用 armeabi 构建的应用程序能否在 armeabi-v7a 设备上运行?

javascript - jQuery 访问 JSON 对象?

node.js - MongoDB 在查询后导致 Express 崩溃

c# - 无法开始监视对 'C:\********\global.asax'的更改

java - 将本地 Maven 存储库中的 Artifact 部署到远程存储库

javascript - 单击更改 slider 图像

javascript - 当找到表中的元素时删除行

javascript - 将负多边形转换为正坐标 - Javascript