我try 使用xTerm JS和node-pty在NW.js中运行终端仿真器/命令提示符.我只收到一个DLL错误.下面是日志(log):
Uncaught Error: Eine DLL-Initialisierungsroutine ist fehlgeschlagen.
\\?\C:\Users\volke.a\Z_local\nwjstart\node_modules\node-pty\build\Release\conpty.node
at Module._extensions..node (node:internal/modules/cjs/loader:1365:18) at Module.load (node:internal/modules/cjs/loader:1116:32)
at Module._load (node:internal/modules/cjs/loader:963:12)
at Module.require (node:internal/modules/cjs/loader:1140:19)
at require (node:internal/modules/helpers:117:18)
at new WindowsPtyAgent (C:\Users\volke.a\Z_local\nwjstart\node_modules\node-pty\lib\windowsPtyAgent.js:41:36)
at new WindowsTerminal (C:\Users\volke.a\Z_local\nwjstart\node_modules\node-pty\lib\windowsTerminal.js:51:24)
at Object.spawn (C:\Users\volke.a\Z_local\nwjstart\node_modules\node-pty\lib\index.js:29:12)
at chrome-extension://fnhkclelbagcndnlaobahcdeinlcloek/terminal.js:15:24
"A DLL初始化 routine 失败"表示"A DLL初始化 routine 失败".
我的操作系统是Windows 10
这是一段JavaScript代码
const os = require('os');
const pty = require('node-pty');
const { Terminal } = require('xterm');
win = nw.Window.get()
win.x = 100
win.y = 100
// Create a new terminal instance
const terminalContainer = document.getElementById('terminal');
const term = new Terminal();
term.open(terminalContainer);
// Start a PowerShell terminal session using node-pty
const shell = os.platform() === 'win32' ? 'powershell.exe' : 'bash';
const ptyProcess = pty.spawn(shell, [], {
name: 'xterm-color',
cols: 80,
rows: 30,
cwd: process.cwd(),
env: process.env
});
// Pipe terminal output to xterm.js
ptyProcess.onData(data => term.write(data));
term.onData(data => ptyProcess.write(data));
// Handle command line input
term.onKey(e => {
const printable = !e.domEvent.altKey && !e.domEvent.ctrlKey && !e.domEvent.metaKey;
if (e.domEvent.keyCode === 13) {
ptyProcess.write('\r\n');
} else if (printable) {
ptyProcess.write(e.key);
}
});
我已经try 更新了npm、node、node-pty、xTerm和NW.js.