Console 是否可以通过另一个命令管道调试配置?
使用PHPStorm 6/7(或者我猜是WebStorm),是否可以配置调试会话,以便它理解并使用管道在PHPStorm控制台中进行更方便的显示?我正在开发一个利用班扬语的nodejs应用程序。我希望PHPStorm能够像从终端启动应用程序一样漂亮地打印调试输出 下面是一个配置示例: 但它试图运行的命令是:Console 是否可以通过另一个命令管道调试配置?,console,pipe,phpstorm,Console,Pipe,Phpstorm,使用PHPStorm 6/7(或者我猜是WebStorm),是否可以配置调试会话,以便它理解并使用管道在PHPStorm控制台中进行更方便的显示?我正在开发一个利用班扬语的nodejs应用程序。我希望PHPStorm能够像从终端启动应用程序一样漂亮地打印调试输出 下面是一个配置示例: 但它试图运行的命令是: /usr/local/bin/node--debug brk=57073 app.js-vv 2>&1“|”bunyan 如果它不引用管道符号,它可能会工作,但我不确定。管道是命令行she
/usr/local/bin/node--debug brk=57073 app.js-vv 2>&1“|”bunyan
如果它不引用管道符号,它可能会工作,但我不确定。管道是命令行shell的一个功能,PhpStorm不使用shell启动配置,因此管道和输出重定向将无法工作 稍微相关的问题:
您可能可以在
节点
周围破解一些包装外壳脚本,并使用它来代替默认的节点
脚本。自定义shell脚本可以以自己的方式解析参数并执行管道。不确定它会工作得多好。我找到了一个解决这个问题的方法,我也遇到了这个问题。我的解决方案不包括WebStorm中的任何配置更改。我只是创建了一个管道输出,它使用bunyan
CLI工具进行解析,该工具通过node spawnchild\u进程加载
代码如下所示:
bunyan = require('bunyan');
logOptions = { name: 'myApp' };
// Activate this logger only for development and leave the original for production
if ( process.env.NODE_ENV === 'development' ) {
spawn = require('child_process').spawn;
bunyanCLI = spawn('bunyan', ['--color'], { stdio: ['pipe', process.stdout] });
logOptions.stream = bunyanCLI.stdin;
}
log = bunyan.createLogger(logOptions);
为了实现这一点,我将节点包装到shell脚本中。
以下是脚本:
#!/usr/bin/env bash
node $@ | ./node_modules/.bin/bunyan
您不应该为了在IDE中中断点调试而修改代码库
要使用它,只需修改您的运行配置,将此脚本用作节点解释器
,我找到了使用该包将buyan记录到WebStorm控制台的更好解决方案
我使用的代码如下所示:
bunyan = require('bunyan');
logOptions = { name: 'myApp' };
if (process.env.NODE_ENV === 'development') {
var PrettyStream = require('bunyan-prettystream');
var prettyStdOut = new PrettyStream();
prettyStdOut.pipe(process.stdout);
logOptions.stream = prettyStdOut;
}
log = bunyan.createLogger(logOptions);
考虑到你的最终目标是通过班扬传递你的输出,你应该看看这个问题,感谢达斯汀。现在我可以用漂亮的日志在Webstorm中正确地调试:)谢谢你的贡献。我使用了代码,注意到当节点退出时,一些日志没有打印到stdout,这可能是由于被管道传输到另一个进程。我试过Shawn的模块,它适用于这个案例。