Генератор Yeoman: как мне получить доступ к параметрам, предоставленным пользователем?

Я строю генератор йоменов. Я предлагаю пользователю назвать проект следующим образом:

SimplesiteGenerator.prototype.askFor = function askFor() {
    var cb = this.async();


    console.log(this.yeoman);

    var prompts = [{
        name: 'siteName',
        message: 'What do you want to call your site?'
    }];

    this.prompt(prompts, function (props) {
        this.siteName = props.siteName;

        cb();
    }.bind(this));
};

Далее строю файловую систему:

SimplesiteGenerator.prototype.app = function app() {
    this.mkdir( 'app');
    this.mkdir('app/templates');
    this.mkdir( 'img');

Я хотел бы создать файловую систему в каталоге с тем же именем, что и у проекта. Как получить предоставленную пользователем опцию и передать ее в приложение?


person dave dave    schedule 08.11.2014    source источник


Ответы (1)


Вам нужно будет создать пустую глобальную переменную, а затем присвоить ей значение ответа пользователя, например

var projectFolderName = '';

this.prompt(prompts, function (props) {
    this.siteName = props.siteName;

     projectFolderName = props.siteName;

    cb();
}.bind(this));

Затем введите эту переменную в строку пути сборки с помощью конкатенации, например

SimplesiteGenerator.prototype.app = function app() {
    this.mkdir( 'app/' + projectFolderName);
    this.mkdir('app/templates');
    this.mkdir( 'img');
}
person Kulerbox    schedule 07.01.2015