我有一个使用grunt-scaffold将文件从我的/ dist /文件夹复制到像/1.0.0/这样的稳定版本的繁琐任务。我正在使用脚手架问几个问题,主要是询问http://semver.org/上看到的3个版本号。下面是scaffold任务的initConfig。我将把它作为'sudo grunt scaffold:publish'来运行。
publish: {
options: {
questions: [{
name: 'warn_confirm',
type: 'input',
message: 'WARNING This can overwrite files. Do you accept this risk?'
},
{
name: 'major_vesion',
type: 'input',
message: 'What MAJOR version is this ? i.e. \'X.0.0\''
},
{
name: 'minor_version',
type: 'input',
message: 'What MINOR version is this ? i.e. \'0.X.0\''
},
{
name: 'patch_vesion',
type: 'input',
message: 'What PATCH version is this ? i.e. \'0.0.X\''
}],
template: {
"dist/": "/{{major_vesion}}{{minor_version}}{{patch_vesion}}/"
}
}
}
正如您所看到的,第一个问题是询问此人是否愿意接受风险(并确认他们知道警告)。
我在文档(上面链接)中看到,在复制文件之前运行了一个before方法。如果使用对初始提示没有回答“是”或“是”,我希望能够中止脚手架。我可以简单地返回false来中止脚手架过程的其余部分吗?类似于这个伪代码的东西:
if(warn_confirm !== 'y' || warn_confirm !== 'yes'){
return false; // theoretically, cancel scaffold
}