Как передать опции приглашения Йомана через шаблоны?
Я пишу версию генератора-углового с дополнительными опциями для поддержки источников в liveScript, а также загрузку с помощью less, font-awesome и т. Д. Работа в настоящее время находится на https://github.com/gmp26/generator-angular-ls
Я одержим тривиальным желанием. Мне бы хотелось, чтобы первоначальный список Halo с установленным Halo отражал параметры, установленные в ответ на вопросы йоменов, а не был постоянным общим знаменателем.
В качестве первой попытки - я попробовал шаблоны lodash в шаблонах /*/spec/controller.(Ls|js|coffee), чтобы настроить список $ scope.awesomeThings, который определен в этих файлах. Это терпит неудачу, потому что мои необязательные флаги, определенные с помощью prompt (this.bootstrap, this.lessBootstrap, this.fontAwesome), аналогично генераторам angular, this.bootstrap и this.compassBootstrap, недоступны в контексте this, где шаблон называется. Оба контекста "this" являются генераторами, но я полагаю, что контекст "this" подсказывает генератор angular: app, тогда как шаблон называется angular: controller.
Итак, есть идеи, как передать флаг из фазы запроса app/index.js до фазы шаблонов?
Я чувствую, что должен быть способ сделать это, не включая запись и чтение файлов в сгенерированной папке приложения.
Может быть, для этого и нужны вызовы hook?
2 ответа
По сути, мой вопрос такой же, как и у проблемы с генератором йоманов # 312, которая решается там путем добавления API хранения параметров с использованием файла.yo-rc.json.
Хранилище на основе файлов необходимо, потому что йогенераторские генераторы могут вызываться независимо от 'yo', а также через основной генератор. Решение hookFor может работать только от основного генератора.
Да - кажется, что опции могут быть переданы другим генераторам через вызовы hookFor, которые уже существуют в generator-angular. Смотрите решение в этом коммите