微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将webpack-dev-server输出传递到节点脚本

如何解决如何将webpack-dev-server输出传递到节点脚本

我正在尝试将webpack-dev-server --progress输出传递给另一个节点脚本。我正在使用的命令是:

./node_modules/.bin/webpack-dev-server --progress | ./index.js

index.js内容是:

#!/usr/bin/env node

process.stdin.setEncoding('utf8');
process.stdin.on('readable',() => {
  var input = process.stdin.read();
  if (input !== null) {
    process.stdout.write(`stdout: ${input}\n`);
    var command = input.trim();

    console.log(input.length);  //this one is always 1 longer
    console.log(command.length);

    if (command === 'quit') {
      process.exit(0);
    }
  }
});

我看到一个输出,但是并没有通过管道传递到index.js,而是直接发送到终端并打印出来。

如果我运行以下命令,它将起作用:

tail -f file | ./index.js

我应该如何更改webpack-dev-server日志记录或index.js,以便可以在脚本中处理日志记录?我正在使用fish外壳程序,并使用iTerm2和nodejs版本v12.18.3。

解决方法

也许您看到的不是stdout,而是stderr?

使用2> |将stderr重定向到stdin 和&|重定向stdout和stderr

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。