Node-pty: Electronアプリでの使用方法の例

作成日 2017年03月20日  ·  9コメント  ·  ソース: microsoft/node-pty

Electronアプリでforkまたはspawnを実行しようとすると、

Error: Could not call remote function 'fork'. Check that the function signature is correct. Underlying error: Path must be a string. Received [Function: callIntoRenderer]
enhancement help wanted

全てのコメント9件

どういうわけか間違った引数を渡しているように見えますか? 特定の呼び出しを確認する必要があります。

使用方法を説明する際に、私もxterm.jsを管理しているプロジェクトを提案することにより、READMEでこれを実行しようとしています。

ターミナルエミュレーターの作成(例:xterm.js経由)

デモhttps://github.com/sourcelair/xterm.jsとして使用例が含まれていますが、node-ptyとxterm.jsを使用して単純なElectronターミナルアプリを作成する方法を示すために、ここで何かを行うこともできます。

これが私が試していることです

const pty = remote.require('node-pty');
pty.spawn('C:/Program Files/Git/bin/bash.exe', [], {
  name: 'xterm-color',
  cols: 80,
  rows: 30,
  cwd: process.cwd,
  env: process.env
});

childProcessを生成して、xterm.jsターミナルにバインドします。 しかし、私をこのプロジェクトに導いたのはpty / ttyになりすます必要があるため、色を機能させることができません:)

https://github.com/Microsoft/vscode/blob/master/src/vs/workbench/parts/terminal/electron-browser/terminalProcess.jsで、VSCodeで私がどのように行っているかを正確に確認できます

次のElectronバグhttps://github.com/electron/electron/issues/38を回避するために、 terminalProcess.jsが独自のプロセスとして起動されていることに注意してください。terminalProcess.jsは次のように起動されますhttps:/ /github.com/Microsoft/vscode/blob/master/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts#L38

現在の設定では特に悪いことはありません。node-ptyとxterm.jsの間でデータを転送する方法に問題があるのではないでしょうか。 私はこのようなものを期待しています:

xterm.on('data', (data) => {
  pty.write(data);
});
pty.on('data', function (data) {
  xterm.write(data);
});

かっこいい、見てみます!

ホーリーモリー! それはうまくいきました🚀

フォームを使用しているのを見ました

import cp = require('child_process');

だから私は自分を変えたので突然タイプスクリプトの助けを借りてエラーが発生しました

process.cwd vs process.cwd()したがって、エラーメッセージ。

この素晴らしいライブラリをありがとう!

素晴らしい! 😄

@stoffeastrom電子の例を作成しているときに、 process.cwdヒットしたものに正確に遭遇したので、より良いエラーを与えるために例外を追加しました:stuck_out_tongue: https

@stoffeastrom提案に感謝し、 https://github.com/Tyriar/node-pty/tree/master/examples/electronに例を追加しました

このページは役に立ちましたか?
0 / 5 - 0 評価