我正在编写自己的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)我可以切换这个好;只有在我想切换多个依赖项时才会出现问题。
答案 0 :(得分:2)
问题是由逗号尾随引起的。包含的最终依赖项不能包含尾随逗号。对于我想到的发电机设置来说,这实际上是个问题,但至少这个问题已经解决了。