使用before()方法有条件地中止grunt-scaffold任务

时间:2015-02-09 20:59:09

标签: javascript gruntjs

我有一个使用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
}

0 个答案:

没有答案