一个轻量级的 node-pty 预编译包,基于 @homebridge/node-pty-prebuilt-multiarch 优化。
English | 简体中文
- 🚀 极致轻量: 移除源代码,仅保留必要的预编译二进制文件
- 🇨🇳 国内加速: 默认使用 npmmirror.com 镜像,无需额外配置
- 💪 多架构支持: 支持主流操作系统和CPU架构
- 🔧 开箱即用: 无需编译,支持多种包管理器
Warning
目前仅在 Windows Node.js 环境下完成测试。其他环境(Linux、macOS等)的兼容性需要用户自行验证。如遇到问题,欢迎反馈。
使用 npm:
npm install @karinjs/node-pty
使用 yarn:
yarn add @karinjs/node-pty
使用 pnpm:
pnpm add @karinjs/node-pty
使用别名安装:
npm install node-pty:@karinjs/node-pty
# or
npm install @homebridge/node-pty-prebuilt-multiarch:@karinjs/node-pty
操作系统 | 架构 |
---|---|
macOS | x64, arm64 |
Linux (glibc) | ia32, x64, armv6, aarch64 |
Linux (musl) | x64, armv6, aarch64 |
Windows | ia32, x64 |
注意: 仅支持 Node.js 16+ 和 Electron 16.0.0+ 版本(不含 Electron 28)
由于采用预编译的方式分发,包的安装依赖于网络环境的稳定性。如果遇到下载问题,可以:
- 使用代理
- 切换到其他包管理器
- 多次重试安装
@karinjs/node-pty | @homebridge/node-pty-prebuilt-multiarch |
---|---|
1.0.2 | 0.11.14 |
本项目基于以下优秀的开源项目:
- microsoft/node-pty - 原始的 node-pty 项目
- homebridge/node-pty-prebuilt-multiarch - 提供多架构预编译支持
本项目基于 MIT 协议开源。感谢以下项目的贡献:
- Copyright (c) 2012-2015, Christopher Jeffrey (MIT License)
- Copyright (c) 2016, Daniel Imms (MIT License)
- Copyright (c) 2018, Microsoft Corporation (MIT License)
- Copyright (c) 2018, David Wilson (MIT License)
- Copyright (c) 2018, oznu (MIT License)
- Copyright (c) 2023, Homebridge (MIT License)
import * as os from 'node:os'
import * as pty from '@karinjs/node-pty'
async function run () {
// 可选: 检查并确保二进制文件与当前环境兼容
await pty.init()
const shell = os.platform() === 'win32' ? 'powershell.exe' : 'bash'
const ptyProcess = pty.spawn(shell, [], {
name: 'xterm-color',
cols: 80,
rows: 30,
cwd: process.env.HOME,
env: process.env
})
ptyProcess.onData((data) => {
process.stdout.write(data)
})
ptyProcess.write('ls\r')
ptyProcess.resize(100, 40)
ptyProcess.write('ls\r')
}
run()
本包支持 @homebridge/node-pty-prebuilt-multiarch 的所有原有 API。
在原有基础上,我们新增了以下 API:
init()
方法用于检查预编译二进制文件是否与当前 Node.js/Electron 环境兼容。该方法是可选的,主要用于以下场景:
- 更换 Node.js 或 Electron 版本后,需要验证兼容性
- 需要重新安装适配当前环境的二进制文件
提示:如果不想调用 init() 方法,也可以直接运行
npx pty
来重新安装适配当前环境的二进制文件。