Условные зависимости в bower.json

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

[?] What more would you like? (Press <space> to select)
‣⬡ jQuery
 ⬡ jQuery Mobile
 ⬡ Zepto
 ...

Однако у меня возникли проблемы с использованием импорта пользователя для изменения моего bower.json. Bower.json выглядит следующим образом:

{
  "name": "<%= _.slugify(blogName) %>",
  "version": "0.0.0",
  "private": true,
  "dependencies": { 
    <% if (includeJQuery) { %>
      "jquery": "jquery/jquery",
    <% } if(includeZepto) { %>
      "zepto": "http://zeptojs.com/zepto.js",
    <% } %>
  }
}

где includeJQuery и includeZepto имеют значение true, если пользователь выбирает соответствующее поле в приглашении. Когда я запускаю генератор yeoman без выбора каких-либо блоков, он работает нормально. Однако, если я выберу именно Zepto, произойдет ошибка:

bower EMALFORMED    Failed to read bower.json

Additional error details:
Unexpected token }

Я не вижу, в чем проблема в моей конфигурации, это происходит только тогда, когда я выбираю хотя бы один пакет. Кроме того, если у меня есть только 1 зависимость (скажем, jQuery), я могу переключить это нормально; проблемы возникают только тогда, когда я хочу переключить несколько зависимостей.

1 ответ

Решение

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

Другие вопросы по тегам