Визуализировать блоки JavaScript с помощью Yeoman?

Каковы будут шаги (псевдокод) для создания класса репозитория JavaScript (или аналогичного) с использованием Yeoman? Похоже, что шаблоны ориентированы на целые файлы, что не сработает, поскольку методы изменятся. И я почти не нашел генераторов, которые строят вывод с использованием циклов.

Это руководство (ссылка) прекрасно глубину, но ничего не упоминает ни о том, ни о другом.

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

vars for all sibling models
vars for all required utilities

1 x create function
    - input parameters (N x params ... based on table fields)
    - validation of parameters (N x statements ... based on table fields)
    - construction of query (based entirely on table fields)
    - execution

N x get function (N x methods ... based on indicies on table)
    - input parameters (N x params ... based on table fields)
    - validation of parameters (N x statements ... based on table fields)
    - construction of query (based entirely on table fields)
    - execution

... etc., etc., etc.

Правильно ли я предполагаю, что каждая подпись параметра... каждый оператор проверки... каждый запрос... должен быть построен со строками на лету? И что в Yeoman нет подшаблона или циклической логики? Это не имеет большого значения. Я просто удивлен, что утилита генерации с такой популярностью требует столько ручного взлома.

Изменить...
Вот еще одно руководство (ссылка). Автор создание HTML вручную путем объединения строк. Ой!


person Fred Lackey    schedule 27.01.2015    source источник


Ответы (1)


Что ж, Yeoman обеспечивает поддержку шаблонов Lodash при вызове this.fs.copyTpl() (или устаревшего this.template()).

Lodash поддерживает циклы и несколько видов операций в шаблоне. Вариант - использовать их.

В противном случае вы можете создать/отредактировать файл, используя JavaScript AST (абстрактное синтаксическое дерево). Для этого есть несколько узловых модулей, вам просто нужно выбрать один. Поскольку это не проблема, специфичная для Yeoman, для нас имеет смысл позволить авторам генераторов выбирать инструмент, который они предпочитают.

Как бы то ни было, AST Query позволяет легко изменять AST. AST Query — это инструмент, который мы используем в ядре API Gruntfile в Yeoman.

person Simon Boudrias    schedule 05.03.2015