Хочу представить свой генератор кода для marionettejs.

image

Я решил написать свой генератор кода для MarionetteJS. Уже существует генератор для yeoman, но ниже я покажу и расскажу о своем генераторе написанном на NodeJS

Итак, начнем. Устанавливаем генератор глобально:

npm install -g marionette-cli

CLI генерирует marionettejs файлы двух типов: RequireJS и CommonJS. Нужно всего лишь сказать генератору какой тип файлов генерировать. По дефолту выставлен RequireJS.

mt set сjs

Теперь все последующие файлы будут типа CommonJS.

Сгенерировать файлы можно командой:

mt generate -l myLayout appFolder

  • Первый параметр — это тип файла, layout, model, router и т.д.
  • Второй параметр — название файла. Если файл с таким же названием присутствует появится соответствующая ошибка в консоле.
  • Третий параметр — папка в которую будет сгенерирован файл. По дефолту файл генерируется в той же директории что и выполняется команда generate.

В итоге будет сгенерирован marionette layout файйл в папке appFolder.

Так же генератор умеет генерировать скелет приложения.

mt new

Планы на будущее:
  • Добавить генератор es6 файлов
  • Улучшить скелет приложения. Генерировать полностью рабочее приложение типа 'todo list' для разных типов модулей


CLI доступна на github. Буду очень рад вашим замечаниям, предложениям и пул реквестам.

Спасибо за внимание.

Комментарии (4)


  1. xamd
    23.12.2015 13:57
    +2

    RequireJS, Marionette… Эх, были времена :)


    1. denar90
      23.12.2015 20:05

      Это да. Просто, я думаю, что есть те кто еще используют Marionette в связке с RequireJS, поэтому его и добавил. Например, на todomvc еще существует пример Backbone+Require. Я в свое время отсюда начинал, поэтому посчитал, что кто-то может использовать RequireJS и добавил его в генератор. В принципе можно и выпелять в следующей версии, когда буду прикручивать es6.


      1. aen
        24.12.2015 21:35

        Скинул ссылочку на ваш репозиторий в чат команды марионетки.


        1. denar90
          25.12.2015 09:21

          Спасибо)