如何让 WebStorm 向我显示 Bower 软件包列表?
How can I get WebStorm to show me a list of bower packages?
早上好。
我的设置:
- OSX 埃尔卡皮坦 10.11.2
- JetBrains WebStorm 11.0.2
- Node.js 4.2.3
- NPM 版本 2.14.7
- 凉亭 1.7.0
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;已修复,下次更新时会修复
早上好。
我的设置:
- OSX 埃尔卡皮坦 10.11.2
- JetBrains WebStorm 11.0.2
- Node.js 4.2.3
- NPM 版本 2.14.7
- 凉亭 1.7.0
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;已修复,下次更新时会修复