Условные зависимости в 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 ответ
Проблема вызвана запятыми. Последняя включенная зависимость не может иметь запятую. На самом деле это довольно проблематично для генераторной установки, которую я имел в виду, но по крайней мере эта проблема была решена.