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/