早上好。
我的设置:
Npm的前缀~/.npm-global
我的可执行路径设置为:$PATH = /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mike/.npm-global/bin
从命令行运行bower search [package] --json
会返回结果。
我的日志中的相关行(当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那样,没有指定包)将bower使用信息作为json对象返回,这很有趣,而且我相信这是问题所在。 Webstorm论坛上没有相关问题。
这实际上是从'IDE'中取出'I'。
任何人都可以提供解决方案吗?
Here's what I'm seeing (or not seeing).
更新:我的原始假设是正确的,但我没有足够的专业知识和时间来妥善解决问题。我的解决方法如下所示。 Bower的search
命令应该在没有参数的情况下运行,但是当Webstorm调用bower search --json
时,该命令被解释为不正确并将搜索用法作为json对象返回。傻东西。希望这有助于其他人。
答案 0 :(得分:1)
问题是由Bower最近的变化引起的(https://github.com/eppeters/bower/commit/5a1e5eb9c717b4210d6a4af77eca1951bdd9f288);它现在需要传递给search
命令的模块名称(尽管文档尚未相应更新)。
相关的JetBrains门票:WEB-19389;已修复,修复将在下次更新中提供
答案 1 :(得分:0)
这是一个严格修复,只要头上留有任何头发,就不适合使用:
在[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']
};
//////////////////////
...
}