# @ai-ecoverse/slicc-jsh 中文文档

规范地址：https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/

版本：0\.64\.0
npm 元数据更新时间：2026-11-03T12:34:42.606Z
中文译文更新时间：2026-11-05T18:42:57.914Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ai-ecoverse/slicc-jsh
原文对照：https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/?lang=original
项目主页：https://github.com/ai-ecoverse/slicc-jsh
源码仓库：https://github.com/ai-ecoverse/slicc-jsh

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：5.1 MB，25 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=22
- 运行依赖：0 个
- 首次发布：2026-10-10T22:23:10.910Z
- 最新版本发布：2026-11-03T12:34:42.204Z
- 近 30 天下载量：58586（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：251（近 12 个月 251 个）

## 中文简介

节点.js-可兼容的slic-内核运行时间:节点和jsh命令(abi:js)

## 安装

```sh
npm install @ai-ecoverse/slicc-jsh
```

也可以使用：`pnpm add @ai-ecoverse/slicc-jsh`、`yarn add @ai-ecoverse/slicc-jsh`、`bun add @ai-ecoverse/slicc-jsh`

## README

# @ai-ecoverse/slicc-jsh (英语)

切-jsh 给 [块状内核](https://github.com/ai-ecoverse/slicc-kernel) a 22相容节点 `node` 命令,和 a `jsh` 运行的命令 `.jsh` 剧本. 也载着一个宿主 `jsh` 运行相同的CLI `.jsh` 普通机器上的脚本,机器自己的节点22.

-   [安装](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/#readme-install)
-   [快开始](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/#readme-quick-start)
-   [节点兼容性](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/#readme-node-compatibility)
-   [核心要求](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/#readme-kernel-requirements)
-   [开发](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/#readme-develop)
-   [CI和释放](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/#readme-ci-and-releases)

## 安装

### 在你的机器上: `curl … | sh`

在macOS或Linux(x64或arm64)上,没有npm:

```sh
curl -fsSL https://raw.githubusercontent.com/ai-ecoverse/slicc-jsh/main/install.sh | sh
```

每一次GitHub发布都带同样的 `install.sh` 作为资产,所以 `https://github.com/ai-ecoverse/slicc-jsh/releases/latest/download/install.sh` 是最新发布的副本.

什麽 [`install.sh`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/install.sh) 是否为:

-   **节点.** 它使用 `node` 打开 `PATH` 如果这是节点22或以后。 如果没有,它就会在将最新节点22 LTS从nodejs.org下载到 `~/.jsh/node`,并检查它与nodejs.org的 `SHASUMS256.txt`。该节点只用于jsh:没有sudo,没有软件包管理器。 没有旗帜跳过问题。 在没有终端(CI)的情况下,它会停下来并说如何安装22号节点(nodejs.org,Homebrew,fnm或nvm). 在Musl(阿尔卑斯山)上,它要求您与您的软件包管理器安装22号节点.
-   **j.** 它从npm注册处得到最新版本(或你要求的版本),对照注册处的sha512检查柏油球 `integrity`,然后把它拆开 `~/.jsh/lib/node_modules/@ai-ecoverse/slicc-jsh`。新版本在旧版本旁边被打包,并且只在运行后移动,所以一个失败的升级保留了旧版本.
-   **这个 `jsh` 命令.** 写着 `~/.local/bin/jsh`,一个小 `sh` 运行已安装的jsh上的节点的脚本 。 这是一个文件,不是化名,所以 `#!/usr/bin/env jsh`坚硬和无相互作用的弹壳起作用。 它不会覆盖一个 `jsh` 它没有写 若为 `~/.local/bin` 还没上 `PATH`,它会先问,然后在你的外壳的 rc 文件中添加一行(`.zshrc`, (中文(简体) ), `.bashrc` 或者说 `.bash_profile`鱼的 `config.fish`,则 `.profile`) (中文(简体) ). 没有终端,它会打印行.
-   结局是 `jsh --version`。 。 。 .

再次运行以提升jsh,并更新其私人节点至最新22.

| 变量 | 默认 | 它的设定 |
| --- | --- | --- |
| `JSH_HOME` | `~/.jsh` | jsh和它的私人节点去的地方 |
| `JSH_BIN_DIR` | `~/.local/bin` | 地点 `jsh` 命令开始 |
| `JSH_VERSION` | 最新消息 | 要安装的版本(或 `--version x.y.z`(中文(简体) ) |
| `JSH_INTEGRITY` | 无 | (或 `--integrity sha512-…`(中文(简体) ) |

```sh
# a given version
curl -fsSL https://raw.githubusercontent.com/ai-ecoverse/slicc-jsh/main/install.sh | sh -s -- --version 0.16.1
# remove ~/.jsh and the jsh command
curl -fsSL https://raw.githubusercontent.com/ai-ecoverse/slicc-jsh/main/install.sh | sh -s -- --uninstall
```

`--uninstall` 使用同样的 `JSH_HOME` 财务报告和审定财务报表 `JSH_BIN_DIR`,如果你设置它们。 它不编辑rc文件;它告诉你要删除哪行.

**信得过.** 脚本信任npm注册和nodejs.org对HTTPS. 默认,它检查的散列与文件来自同一地点,它不会自己散列. `--version` 针出一个版本,而不是散列.

标出字节 `--integrity` (或 `JSH_INTEGRITY`)与该版本. 然后登记 `dist.integrity` 并且下载的柏油球必须等于该值,或者安装者停止并打印预期值和实际值:

```sh
# the sha512 to pin, from a source you trust
npm view @ai-ecoverse/slicc-jsh@0.37.1 dist.integrity
curl -fsSL https://raw.githubusercontent.com/ai-ecoverse/slicc-jsh/main/install.sh |
  sh -s -- --version 0.37.1 --integrity sha512-…
```

仅a `sha512-` 值被接受; 其它算法和错误的值在被下载之前被拒绝。 接针覆盖了jsh tarball,而不是安装器脚本或私人节点.

**窗口** 尚未覆盖: [ai- ecoverse/ slicc-jsh # 127](https://github.com/ai-ecoverse/slicc-jsh/issues/127)随着npm, `jsh file.jsh` 运行通过 npm `.cmd` 嘘.

### 与 npm 关系

包裹 `bin` 为主机 `jsh` (单位:千美元)`dist/host/jsh.mjs`) (中文(简体) ). 它运行 `.jsh` 剧本在主机自己的节点22上或后作.

```sh
npm i -g @ai-ecoverse/slicc-jsh
jsh script.jsh args…
npx @ai-ecoverse/slicc-jsh script.jsh
```

### 块状内核

在内核中安装 pnpm 软件包 :

```sh
pnpm add -g @ai-ecoverse/slicc-jsh
```

内核读取 `slicc` 软件包的字段 `package.json` 登记和登记 `abi: "js"` 程序:

| 命令 | 模块 | 这是什么 |
| --- | --- | --- |
| `node` | `dist/node.mjs` | 节点 22.x 兼容运行时间 |
| `jsh` | `dist/jsh.mjs` | 运行 `.jsh` 脚本; `slicc.binfmt` 地图 `.jsh` 文件为 `jsh` |

`pnpm add -g` 也链接 npm `bin` (主机CLI)输入 `$PNPM_HOME/bin`,领先于内核 `jsh` 打开 `PATH`。没关系:在内核内,主机CLI将论据交给内核 `jsh`。 。 。 .

软件包需要 `slicc-kernel` 1.53.2 或以后(`engines`) (中文(简体) ). 一些特性需要更新内核:见 [核心要求](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/#readme-kernel-requirements)。 。 。 .

## 快开始

A 类 `.jsh` 文件是一个激活函数的正文. `process`, (中文(简体) ), `console`, (中文(简体) ), `require`, (中文(简体) ), `module`, (中文(简体) ), `exports`, (中文(简体) ), `fetch`, (中文(简体) ), `__dirname` 财务报告和审定财务报表 `__filename` 在范围,和顶级 `await` 财务报告和审定财务报表 `return` 工作时 内核和主机都是一样的.

```js
#!/usr/bin/env jsh
// hello.jsh
const fs = require('fs');                     // Node's fs
const { col } = require('sliccy:fmt');
const flags = process.argv.parseFlags();      // { positional, flags, subcommand, passthrough }
const res = await fetch('https://example.com/');
console.log(col('status', 8), res.status, flags.positional);
```

```sh
jsh hello.jsh a b             # or: chmod +x hello.jsh && ./hello.jsh a b
node -e 'console.log(process.version)'
node script.mjs
```

-   `#!/usr/bin/env jsh` 是手提弹 内核也运行 `#!/usr/bin/jsh`,通过宾弗姆特 a `.jsh` 无文件 `#!` 线条。 主机没有 binfmt: 运行此文件为 `jsh file.jsh`。 。 。 .
-   一个静态 `import` 在一个 `.jsh` 是一个 `SyntaxError`; 使用 `await import()`。 。 。 .
-   `jsh [--version | --help] <script.jsh> [args…]`。如果没有脚本,它会打印使用量并输出2;一个未知选项退出9;一个无法读取出 1 的文件.
-   `process.versions.jsh` 是两种语言中的 slicc-jsh 版本 `jsh`编号. `globalThis.SLICC_VERSION` 仅存在于 SLICC 内部.

### `sliccy:` 模块

| 名称 | 这是什么 |
| --- | --- |
| `cli`, (中文(简体) ), `fmt`, (中文(简体) ), `time`, (中文(简体) ), `pool` | 与 SLICC v6 相同的代码 |
| `color` | 当 stdout 是终端时; `FORCE_COLOR` 财务报告和审定财务报表 `NO_COLOR` 改变这个 |
| `exec` | `exec(cmd)` 穿过外壳, `exec.spawn(argv)` 无; 结果是 `{ stdout, stderr, exitCode }` |
| `http` | 6号 `http.client`结束 `fetch` |
| `skill` | `dir` 是脚本的目录,并且 `config()` 读和写 `.config` 那边; `root` 是技能文件夹(一个 `scripts/` 目录),与 `refs` 财务报告和审定财务报表 `assets` 在其中; `token(id, params)` 运行 [`jerk`](https://github.com/ai-ecoverse/slicc-jerk) `<id> get --reveal`,与 `-p key=value` 可选条目的每个条目 `params` 袋( 装入`skill.token('aem', { org, site })`),并返回符号,或者用 `err.exitCode` (3: 与 `jerk <id> create`(中文(简体) ) |

任何其他 `sliccy:<name>` 是软件包 `@ai-ecoverse/sliccy-<name>`,则 `sliccy-<name>`.jsh按此顺序寻找:

1.  脚本旁边(节点) `node_modules` 查询);
2.  \-jsh本身(如此) `npm i -g --prefix ~/.jsh sliccy-<name>` 与 `curl | sh` 安装);
3.  在 pnpm 的全球安装中`pnpm add -g`页:1 `$PNPM_HOME`,否则pnpm的默认家(`/usr/local/share/pnpm` 在内核, `~/.local/share/pnpm` 在Linux上, `~/Library/pnpm` (原始内容存档于2018-09-28). on macOS.

`agent`, (中文(简体) ), `usb`, (中文(简体) ), `serial`, (中文(简体) ), `hid` 财务报告和审定财务报表 `computer` 仅存在于SLICC内部;jsh这样说. `sliccy:browser` 实值 [`@ai-ecoverse/sliccy-browser`](https://github.com/ai-ecoverse/slicc-cdp/issues/40) 从slicc-cdp, 超过 CDP(`pnpm add -g @ai-ecoverse/sliccy-browser`); 内核中它驱动后方的浏览器 `SLICC_CDP_URL`。 。 。 .

包可以将内核的单独代码传送到: 那里, `require` 财务报告和审定财务报表 `import` 决 议 `slicc` 先出口条件。 主节点从不设置.

更多内容: [文件/设计/运行-外侧-外侧](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/design/run-outside-slicc.md) (情况如何) `.jsh` 运行,运行 [平价表](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/design/run-outside-slicc.md#parity-tables) 在 SLICC v6 之间,内核 `jsh` 和东道主之间 `jsh`) (中文(简体) ).

## 节点兼容性

目标为Node v22.22.0. 大部分运行时间都是节点自己的 `lib/` 代码,带入 [`src/node-lib`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/src/node-lib/README.md)产出将对照22.22.0号实际节点检查字节(见 [开发](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/#readme-develop)) (中文(简体) ).

本表为汇总. 每个模块后面的细节、怪事和库都有 **[文档/兼容性](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md)**如何实现 `.jsh` 内核中的脚本行为,在SLICC v6中,在节点中,逐个案例,都在比较报告中 [文献/比较/七-六节点](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compare/seven-six-node.md)。 。 。 .

| 区域 | 支助 | 差异 | 不详 |
| --- | --- | --- | --- |
| [`node` 命令](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#the-node-command) | `-e`, (中文(简体) ), `-p`, (中文(简体) ), `-i`, (中文(简体) ), `-`, (中文(简体) ), `-c`编号 :`--check`, (中文(简体) ), `-r`, (中文(简体) ), `--import`, (中文(简体) ), `--input-type`, (中文(简体) ), `NODE_OPTIONS`警告旗帜, `--enable-source-maps`, (中文(简体) ), `--report-*`, (中文(简体) ), `--stack-trace-limit` | `--max-old-space-size` 财务报告和审定财务报表 `--trace-uncaught` 被接受,什么都不做 | 检查和调试的旗帜, `--watch`,类型脚本 |
| [模块,无害环境管理](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#modules-and-esm) | 与节点决议、无害环境管理、, `import()`, (中文(简体) ), `import.meta`CJS ESM互通电话, `require(esm)`, (中文(简体) ), `exports`编号 :`imports`,源地图, `--preserve-symlinks` | 在内核中 `slicc` 条件第一 | `module.register`编号 :`registerHooks`当地人, `.ts` 文件 |
| [`process`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#process-and-the-end-of-a-program) | 退出代码和 `'exit'`信号, `kill`, (中文(简体) ), `chdir`, (中文(简体) ), `env`, (中文(简体) ), `report`, (中文(简体) ), `execve`, (中文(简体) ), `emitWarning`, (中文(简体) ), `loadEnvFile` | `exit()` 1.65内核一次结束; `kill(self)` 从1.72; `setuid` 由 1. 81 创建( co.) | —— 说 |
| [斯特迪奥, `tty`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#stdio-tty-and-signals) | 节点流, `isTTY`, (中文(简体) ), `setRawMode`, (中文(简体) ), `columns`编号 :`rows`, (中文(简体) ), `'resize'` | 信号处理器在呼叫后一分钟生效; `isatty` 仅知道 fds 0–2 | —— 说 |
| [`fs`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#fs) | 同步 召回 承诺和流表, `file:` URL 并联, `cp`, (中文(简体) ), `statfs`, (中文(简体) ), `watchFile` (传票) `stat`作为节点, `watch` 财务报告和审定财务报表 `promises.watch` (内核1.125,作为节点报告Linux),, `/dev` (内核 1.69) | `chmod` 和1.86内核中的新文件模式,在此之前它们不会改变任何东西; `chown`, (中文(简体) ), `utimes` 不变; `mkdir` 不包括1.86; `linkSync` 仅在 `tmpfs`· ; `statfs` 是浏览器的存储估计; 重新命名的被监视路径结束它的手表 | `glob`, (中文(简体) ), `openAsBlob`, (中文(简体) ), `readv`编号 :`writev` |
| [`child_process`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#child_process) | `spawn`, (中文(简体) ), `exec`, (中文(简体) ), `execFile`· ; `spawnSync`, (中文(简体) ), `execSync`, (中文(简体) ), `execFileSync` (内核1.65) | fd stdio 订单从 1. 70; `detached` 从1.74; `argv0` 从1.76; `.pid` 从1.87回转 | `fork`; fd 2 之后的 stdio 插槽 |
| [`net`, (中文(简体) ), `http`, (中文(简体) ), `https`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#net-http-and-https) | TCP和HTTP/1.1服务器和客户端在内核的回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回去回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回; `'upgrade'`· ; `http.Agent` 子类; `https` 客户端; TLS 和 `https` 带有程序自身证书的服务器, 互通 TLS 和 ALPN( 内核 1. 149) | 没有路线, `http` 穿过 `fetch`,作为 `https` 总是如此:没有原始套接字、代理集、升级/`CONNECT`, 100 连续或拖车; 普通头; 缓冲上传; 浏览器跟踪的重定向 | 除HTTP/1.1和WebSocket外的TLS到主机内核上行链路不通([`tls`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#tls):从1.116内核通过运输;从1.124任何协议,一种习惯 `ca` 和STARTLS到上行链路主机,从1.124.13客户端证书也在那里),HTTP/2会话([`http2`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#http2) 负载,但 `connect` 财务报告和审定财务报表 `listen` 抛出, `pfx` 客户端证书, Unix 套接字 |
| [`dns`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#dns) | `lookup` (召回和承诺), `resolve4`编号 :`resolve6` 通过内核的解析器( n)`/etc/hosts`从内核1.113, `lookupService`,节点的表面和错误 | 在1.113内核之前,只有IP字元和内核本身的名称(`localhost`, (中文(简体) ), `*.localhost`,其主机名:另一个名称是 `getaddrinfo ENOTFOUND` | 其他查询(`resolveMx`, (中文(简体) ), `resolveSrv`,...):无名服务员 |
| [`fetch`, (中文(简体) ), `WebSocket`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#fetch-and-websocket) | 环球网,通过内核网络 | 循环 URL 到达此内核的服务器 : `fetch` 超过 jsh 自己的 HTTP 客户端( 内核的回路) `ctx.fetch` 仍然与undici不同, `WebSocket` 超过内核 `ctx.websocket` 从1.106.3和jsh自己的RFC 6455客户端开始(在此之前)[斯克-内核# 822](https://github.com/ai-ecoverse/slicc-kernel/issues/822); 拒绝连接作为节点来自内核1.59.1 | —— 说 |
| [`crypto`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#crypto) | hASHE, HMAC, PBKDF2, HKDF, Scrypt, AES 和 3DES 密码, 密钥, 随机, `webcrypto` | —— 说 | 非对称密钥、标志/验证、DH/ECDH、RSA、质子、X509 |
| [`zlib`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#zlib) | 降压、降压、克兹普、生化、布罗特利和兹德减压, `crc32`,流和回调 | —— 说 | Brotli 和 Zstd 压缩 |
| [流线, `Buffer`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#streams-and-buffer) | `stream` (可读流 4), `stream/promises`, (中文(简体) ), `stream/web`, (中文(简体) ), `stream/consumers`, (中文(简体) ), `Buffer`, (中文(简体) ), `string_decoder` | `Buffer.allocUnsafe` 零填充; `poolSize` 为 0 | —— 说 |
| [`events`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#events) | 节点自己的 `lib/events.js`,每个发射器 | `getEventListeners` 不采取平台 `EventTarget`编号 | —— 说 |
| [`readline`,应答](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#readline-and-the-repl) | `readline`, (中文(简体) ), `readline/promises`节点的应答, `repl.start()` | 没有您输入的预览, 没有 `^C` 退出运行中的循环 | —— 说 |
| [`util`, (中文(简体) ), `console`, (中文(简体) ), `os`, (中文(简体) ), `path`, (中文(简体) ), `url`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#util-console-os-path-url-querystring-punycode) | 节点自己的 lib 文件 | `os` 报告内核(仅循环, Linux 常数) | —— 说 |
| [`vm`](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#vm) | 脚本,背景, `compileFunction`,动态 `import()` | 一个领域:上下文不是一个单独的领域 | `vm.Module`, (中文(简体) ), `timeout`, (中文(简体) ), `breakOnSigint`, (中文(简体) ), `measureMemory` |
| [`async_hooks`, (中文(简体) ), `domain`, (中文(简体) ), `perf_hooks`, (中文(简体) ), `v8`,, , , , , , , ,](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#async_hooks-domain-perf_hooks-v8-and-diagnostics) | `AsyncResource`, (中文(简体) ), `AsyncLocalStorage`, (中文(简体) ), `domain`, (中文(简体) ), `diagnostics_channel`, (中文(简体) ), `perf_hooks`, (中文(简体) ), `v8` 统计 | `createHook` 钩子从不运行; 域不遵循诺言; a `AsyncLocalStorage` 商店无法活下来 `await` (然后不见了,再也不跑了) | `v8.serialize`,堆积快照 |
| [工人和其他工人](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compatibility.md#modules-that-are-not-available) | `worker_threads` 作为主线, `BroadcastChannel` 在一个程序内(来自1.92内核的全局) | `new Worker` 掷出 `ERR_NOT_SUPPORTED` | `cluster.fork`, (中文(简体) ), `dgram`, (中文(简体) ), `inspector.open` (没有检查员), `test`, (中文(简体) ), `sqlite`, (中文(简体) ), `wasi` |

## 核心要求

软件包需要 `slicc-kernel` 1.147.10 或后来: `engines.slicc-kernel` 是内核CI测试 `@ai-ecoverse/slicc-kernel` 德从相从,而相并相取. jsh对更古老的内核没有后退.

## 开发

```sh
npm ci
npm run build                # esbuild: dist/node.mjs, dist/jsh.mjs, dist/vendor/, dist/host/
npm run lint
```

内核负载 `abi: "js"` 来自 `data:` URL,相对进口不能解决的地方. 因此每个程序条目被捆绑为一个文件.

| 命令 | 它包含什么 |
| --- | --- |
| `npm test` | 每个文件在 `test/integration/`CI运行; `pretest` 在 `config.chrome` |
| `npm run test:golden` | 每个固定在 `test/golden/fixtures/` 22.22.0和开通 `node` 在 slic-内核 节点条目中: stdout, stderr 和状态,字节的字节(`golden-1` 改为 `golden-4.test.mjs` 管理每个季度) |
| `npm run test:jsh` | 每个 `.jsh` 实例 `test/jsh/fixtures/` 关于主机 `jsh` (基线)和内核 `jsh` (单位:千美元)`jsh-parity.test.mjs`(中文(简体) ) |

输入的文件 `test/integration/` 为: `node:test` 块状内核节点条目上的套件: 子进程, `pnpm add -g`、无害环境管理、HTTP、WebSocket、退出和信号、TLS上的PostgreSQL(`tls-sealed-postgres`,通过 `embedded-postgres`) (中文(简体) ). 一些人用自己的绳子包裹:

-   `differential.test.mjs`: 情况 `test/integration/cert/`,主节点22对shim, 内核从平原装入 `dist` 路径;
-   `node-parallel.test.mjs`:一分节点 v22.22.0自己的 `test/parallel` 带节点 `test/common`; 每一个文件都通过, 但其列出的已知漏洞;
-   `browser-*.test.mjs`: Chromium 标签中的内核,有slic-jsh和 `@ai-ecoverse/sliccy-browser` 安装于 `pnpm add -g`· ; `sliccy:browser` 与东道主相比 `jsh`。 。 。 . `JSH_TARBALL=/path/to.tgz` 财务报告和审定财务报表 `SLICCY_BROWSER` (一个版本或一个本地的柏球) 给一个发布。 Chrome 运行无头,除非 `CI` 设置; `SLICC_HEADLESS=1` 或者说 `0` 覆盖;
-   `install.test.mjs`数字 : `install.sh` 丢弃中 `HOME`s,取自已公布的套件(需要卷曲、节点22+、蟒蛇3和活塞);
-   `package.test.mjs`: 沥青球 `npm pack` 取出单的复制件 : `NOTICE`,它的档案,没有 `prepare` 或者说 `prepack`,而全局安装运行 `#!/usr/bin/env jsh` 剧本.

运行一个 `node --test --test-timeout=900000 --test-global-setup=node_modules/@ai-ecoverse/slicc-shared-web/harness/global.mjs test/integration/<file>.test.mjs`。 。 。 .

基线总是在22.22.0节点上运行: `$NODE22` 如果它命名该版本, 否则 `npx -y node@22.22.0` 取来一次. 记录基线:

```sh
npm run golden:record        # test/golden/fixtures/, on Node 22.22.0
npm run jsh:record           # test/jsh/fixtures/, with the host jsh
```

Fixtures 不发布:软件包的 `files` 仅列出 `dist`, (中文(简体) ), `README.md`, (中文(简体) ), `LICENSE` 财务报告和审定财务报表 `NOTICE`.CI还检查 `NOTICE` 列出每个捆绑的包件,而且柏油丸没有 `test/` 或者说 `scripts/`。 。 。 .

设计和里程碑: [块状内核# 68](https://github.com/ai-ecoverse/slicc-kernel/issues/68)。利用后面的比较 [文献/比较/七-六节点](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/docs/compare/seven-six-node.md) 进入 [测试/比较/](https://npmcn.com/package/%40ai-ecoverse/slicc-jsh/test/compare/README.md)。 。 。 .

**记忆.** 每个测试脚本运行 `--max-old-space-size=512`对于重跑,请将命令包入 `scripts/mem-guard.sh`它每0.5秒对RSS进行取样,当一个过程通过2,000,000KB(~1.9 GiB)或整棵树通过3,000,000KB(~2.9 GiB)时会杀死命令的流程树(出137). 一次运行一个铬:

```sh
scripts/mem-guard.sh npm test
lockf -k /tmp/slicc-heavy.lock scripts/mem-guard.sh node --test test/integration/browser-corpus.test.mjs
```

## CI和释放

`.github/workflows/ci.yml` 是一个叫 [塑料-共享网络管道](https://github.com/ai-ecoverse/slicc-shared-web#pipeline),在节点26上(内核) `engines`;基线带来自己的22.22.0节点:

-   **拉动请求 :** `npm run lint` (与 `shellcheck` 打开 `install.sh`,则 `npm test` 与文档 `test/integration/` 然后是克勞德和克勞德克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克. `ci / integration` 财务报告和审定财务报表 `ci / review` 需要的检查;
    
-   **合并队列 :** 又在落地的树上用花粉做测试;
    
-   **推动 `main`数字 :** [语义释放](https://semantic-release.gitbook.io/) 从传统承诺中取出版本,自上次 `v*` 通过 npm 信任的出版来源,标记并发布到 npm `ci.yml`。 。 。 .
    
-   `feat:` (一) 给予少量释放(在出现突破性变化之前,0.x保持0.x);
    
-   `fix:` 或者说 `perf:` 给予补丁释放;
    
-   其他类型(`docs:`, (中文(简体) ), `chore:`, (中文(简体) ), `ci:`, (中文(简体) ), `test:`,...) 释放什么.
    

`version` 内 `package.json` 留下来 `0.0.0`;语义-放出设置. `prepack` 构建然后运行 `scripts/strip-own-scripts.mjs`,删除 `prepare` 财务报告和审定财务报表 `prepack` 从 `package.json` 在 CI (或为 `SLICC_JSH_STRIP_SCRIPTS=1`)npm包之前,所以所发布的包没有. 当地人 `npm pack` 留着吧 npm 信托 `ci.yml` (单位:千美元)`fledgling` 内 `package.json`: `npm run trust` 设置这个, `npm run trust:dry` 显示它会做什么.

## 常见问题

### @ai-ecoverse/slicc-jsh 是什么？

节点\.js-可兼容的slic-内核运行时间:节点和jsh命令\(abi:js\)

### 如何安装 @ai-ecoverse/slicc-jsh？

在项目目录运行 npm install @ai-ecoverse/slicc-jsh，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 jsh，可以用 npx jsh 直接运行。

### @ai-ecoverse/slicc-jsh 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/ai-ecoverse\_\_slicc-jsh 是否存在。

### @ai-ecoverse/slicc-jsh 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @ai-ecoverse/slicc-jsh 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @ai-ecoverse/slicc-jsh 可以商用吗？

@ai-ecoverse/slicc-jsh 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @ai-ecoverse/slicc-jsh 的下载量有多少？

根据 npm 官方下载统计，@ai-ecoverse/slicc-jsh 在 2026/10/05 – 2026/11/03 这 30 天内被下载 58,586 次，日均约 1,953 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ai-ecoverse/slicc-jsh 还在维护吗？

最新版本 0\.64\.0 发布于 2026/11/03（2 天前）；至今共发布 251 个版本，其中过去 12 个月发布了 251 个；首次发布于 2026/10/11。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

