Получите входные данные из подсказки и используйте его для изменения поля в файле JavaScript, Yeoman - PullRequest
0 голосов
/ 18 декабря 2018

Я делаю генератор, используя Yeoman

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


Я спрашиваю пользователя, как называется класс

this.controllerName = await this.prompt({
        type: 'input',
        name: 'controllerName',
        message: `What's the name of the controller?`
      })

Iзнаю, как изменить имя файла

this.destinationPath(`${this.controllerName.controllerName}Controller.js`)

Но я не знаю, как изменить поле внутри файла.Пример:
Мой шаблон класса

class TemplateController {
  createTemplate (req, res) {
    console.log('GET request')
    res.json('URL WORKING!')
  }

Я хотел бы изменить имя класса / метода для ответа пользователя в приглашении

class UserController {
  createUser (req, res) {
    console.log('GET request')
    res.json('URL WORKING!')
  }

1 Ответ

0 голосов
/ 19 декабря 2018

Добавьте заполнители в ваш базовый файл (yeoman использует шаблонизатор EJS):

_controller.js

class <%= name %>Controller {
  create<%= name %> (req, res) {
    console.log('GET request')
    res.json('URL WORKING!')
  }
}

Передайте пользовательский ввод как name на вашшаблон:

index.js

...
writing() {
  this.fs.copyTpl(
    this.templatePath('_controller.js'),
    this.destinationPath(`${this.controllerName.controllerName}Controller.js`),
    {
      name: this.controllerName.controllerName
    }
  )
}
...
...