如何让 WebStorm 向我显示 Bower 软件包列表?

How can I get WebStorm to show me a list of bower packages?

早上好。

我的设置:

Npm 的前缀为~/.npm-global

我的可执行路径设置为:$PATH = /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mike/.npm-global/bin

运行 bower search [package] --json 从命令行执行 return 结果。

我日志中的相关行(当 Webstorm 运行 搜索时)如下所示:

2015-12-10 10:11:20,252 [1087432] INFO - ipt.bower.BowerCommandLineUtil - Running bower command: /usr/local/bin/node /Users/mike/.npm-global/bin/bower search --json 2015-12-10 10:11:20,739 [1087919] WARN - .BowerAvailablePackagesManager - [parse all bower packages] Top-level element should be object, but BEGIN_OBJECT found.

我确实注意到 bower search --json(就像 Webstorm 一样,没有指定包)returns bower 使用信息作为 json 对象,这很有趣,我相当有信心这是问题所在。 Webstorm论坛上没有相关问题

这确实是从 'IDE' 中取出 'I'。

有人可以提供解决方案吗?

Here's what I'm seeing (or not seeing).

更新:我最初的假设是正确的,但我缺乏专业知识和时间来正确解决它。我的解决方法如下所示。 Bower 的 search 命令应该 运行 没有参数,但是当 Webstorm 调用 bower search --json 时,该命令被解释为不正确并且 return 将搜索用法作为 json 目的。愚蠢的东西。希望这对其他人有帮助。

这是一个粗略的修复,只要头上还有头发,就不适合使用:

[npm prefix]/bin/lib/node_modules/bower/lib/util/cli.js

我添加了以下内容来拦截命令行选项并强制使用空搜索模式:

function readOptions() {

    ...

    noptOptions = nopt(types, shorthands, argv);

    ...

    // ADDED THE FOLLOWING

    if (noptOptions.argv.original.length == 2 && noptOptions.argv.original[0] == 'search' && noptOptions.argv.original[1] == '--json') {
    noptOptions.argv = {
        remain: ['search', ''],
        cooked: ['search', '', '--json'],
        original: ['search', '', '--json']
    };

    //////////////////////

    ...
}

问题是由 Bower 最近的变化引起的 (https://github.com/eppeters/bower/commit/5a1e5eb9c717b4210d6a4af77eca1951bdd9f288);它现在需要将模块名称传递给 search 命令(尽管文档尚未相应更新)。 相关 JetBrains 门票:WEB-19389;已修复,下次更新时会修复