bower.json中的条件依赖关系

时间:2014-06-13 08:55:13

标签: yeoman bower yeoman-generator

我正在编写自己的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 个答案:

答案 0 :(得分:2)

问题是由逗号尾随引起的。包含的最终依赖项不能包含尾随逗号。对于我想到的发电机设置来说,这实际上是个问题,但至少这个问题已经解决了。