https://github.com/Marak/colors.js
https://www.npmjs.com/package/colors
https://www.npmjs.com/package/chalk
これが上記のlibで動作するのを妨げるものはありますか? エスケープシーケンスを正しく処理する必要がありますか?
私はそれを機能させるのに問題があります、それは私がそれを機能させる方法を知らない、または代替カラーライブラリがより適しているというだけでそれがxterm.js
の問題であると言っているわけではありません。
どのように使用していますか? 色付きの文字列を生成してから、それをxterm.jsインスタンスに直接書き込みますか?
はい、たとえば、 chalk
(https://www.npmjs.com/package/chalk)で試してみました
terminal.writeln(chalk.blue('Hello') + ' World' + chalk.red('!'));
colors
(https://www.npmjs.com/package/colors)でも試してみました
terminal.writeln(colors.green('Hello World'));
どちらの場合も出力は白黒です
色の正しいANSIエスケープコードを生成する限り、これが機能することを期待します。 xtermからの出力はどのように見えますか? 着色されていない文字列? スクリーンショットを送ってもらえますか?
私のために働く:
あなたは窓にいますか? もしそうなら、どのシェルを使用していますか?
ちょっと待ってください、ここではWindowsは重要ではありません。 これが機能するためにシェルを接続する必要はありません。
なぜそれがうまくいかないのかわかりません。 コンソールにエラーはありますか?
それが機能するノードreplからのYa、これは私が問題であるかもしれないと思うブラウザにあります。
@Tyriarはxterm.jsデモのchrome開発者コンソールで書いていたと思います(2番目のスクリーンショットterm.writeln...
)。 彼が使用していたのと同じ文字列を試してみて、それがあなたのために機能するかどうかを確認できますか?
@Tyriarこれは、端末がバニラであり、xterm.jsを最初にセットアップするttyプロセスに接続されていない場合にも機能すると思いますか? xterm.jsがカラーモードを設定するために消費するシーケンスがあるかどうかを考えるだけです...
私のために働く
サーバーでメッセージをフォーマットすると、ブラウザでchalk
を実行する代わりに、色が表示されます。 ブラウザでchalk
を直接使用すると、色が表示されません。lemmeは、私が完全な馬鹿ではないことを確認するために、もう1つ試してみてください(すでに手遅れかもしれません)
@aventurellaは、$# chalk
なしで$ term.writeln('\u001b[34mHello\u001b[39m World\u001b[31m!\u001b[39m')
を直接実行してみてください。
@Tyriar ya、それはうまくいきます...
さて、これは、バンドル時にチョークするためにWebpackが何かをしているのではないかと思います。
ええ、それはチョークの問題のようです。チョークが返すものをログに記録するか、チョーク呼び出しにデバッグしてみてください。
xterm.jsには問題がないので締めくくりますが、その理由を知りたいと思います。
@Tyriarわかりました、わかりました。
Chalkは、次のlibを使用して、何をサポートする必要があるかを確認するために自動検出を行っています: https ://github.com/chalk/supports-color
簡単に言うと、チョークは色に関しては何もサポートされていないと考えているため、文字列を処理しません。
let options: any = {enabled: true, level: 2};
const forcedChalk = new chalk.constructor(options);
^ブラウザで修正します
レベルは次のとおりです。
0: All colors disabled
1: Basic color support (16 colors)
2: 256 color support
3: Truecolor support (16 million colors)
興味深いことに、チョークは環境変数などをチェックしてチェックしますか?
ありがとう@aventurella!
@Tyriar 、準備はいいですか? https://github.com/chalk/supports-color/blob/master/browser.js
ブーム。 チョークがその設定を作成するとき、それはsupports-colorに尋ねます。そして、それはブラウザのためにfalse
を返します。
@cdaringeこれは、browserifyを介してビルドした場合にのみ発生しますか? 常にノードプロセスでチョークを実行しませんか? 😕
@Tyriar 、正解、ブラウザバンドラーrefを介して話しているim。 明確にするために、私の発言は、このパッケージの問題を強調することではなく、理解を深めるのに役立つことでした:)
@aventurellaありがとうございます! ただし、 chalk.constructor
は非推奨であり、最新バージョンでは削除されている可能性があります。 代わりにchalk.Instance
を使用する必要があります。
最も参考になるコメント
@Tyriarわかりました、わかりました。
Chalkは、次のlibを使用して、何をサポートする必要があるかを確認するために自動検出を行っています: https ://github.com/chalk/supports-color
簡単に言うと、チョークは色に関しては何もサポートされていないと考えているため、文字列を処理しません。
^ブラウザで修正します
レベルは次のとおりです。