# nodeJs.runtime 库模块帮助文档

[轻量 Node.js 运行时](https://www.aardio.com/zh-cn/docs/library/nodeJs/runtime/index.html)

## nodeJs.runtime 成员列表 <a id="nodeJs.runtime" href="#nodeJs.runtime">&#x23;</a>

独立 Node.js CLI 运行时；不导入 nodeJs 主库，不初始化 RPC/端口或修改父环境。  
resolve/ensure 返回可跨线程传递的纯描述符，只有显式调用才检查/下载。

### nodeJs.runtime.ensure() <a id="nodeJs.runtime.ensure" href="#nodeJs.runtime.ensure">&#x23;</a>
[返回对象:nodeRuntimeDescriptorObject](#nodeRuntimeDescriptorObject)

### nodeJs.runtime.ensure(options) <a id="nodeJs.runtime.ensure" href="#nodeJs.runtime.ensure">&#x23;</a>
优先复用 resolve；缺失/不兼容时在用户目录准备固定版本便携 Node。  
不修改 PATH/NODE_PATH/npm配置，不替换显式 nodeExePath；固定version/arch并按SHA256校验ZIP后解压、校验和提交。  
选项同resolve；可选 sha256（来自可信清单）、downloadUrl（必须同时传sha256）、onProgress(received,total)。  
未指定sha256时从官方HTTPS SHASUMS256.txt获取；默认根目录io.appData("aardio/std/nodeJs/runtime")。  
保留.cache归档；坏hash不解压、不提交；同步调用，耗时准备建议工作线程执行。

### nodeJs.runtime.popen() <a id="nodeJs.runtime.popen" href="#nodeJs.runtime.popen">&#x23;</a>
[返回对象:processPopenObject](https://www.aardio.com/zh-cn/docs/library-reference/process/popen.html#processPopenObject)

### nodeJs.runtime.popen(runtime,cmdArgs,startInfo) <a id="nodeJs.runtime.popen" href="#nodeJs.runtime.popen">&#x23;</a>
使用描述符启动Node，返回原生process.popen并设codepage=65001，不隐式ensure。  
cmdArgs/startInfo原样交给process.popen；启动选项及子环境按其契约，不接受额外位置参数。  
调用方排空双管道并close；需整树监管时使用独立job.popen(runtime.nodeExePath,cmdArgs,startInfo)。

### nodeJs.runtime.resolve() <a id="nodeJs.runtime.resolve" href="#nodeJs.runtime.resolve">&#x23;</a>
[返回对象:nodeRuntimeDescriptorObject](#nodeRuntimeDescriptorObject)

### nodeJs.runtime.resolve(options) <a id="nodeJs.runtime.resolve" href="#nodeJs.runtime.resolve">&#x23;</a>
定位并运行校验现有 Node，不下载。失败 null,错误信息,错误码或类别。  
options.nodeExePath 显式指定时仅检查此路径；否则 NODE_EXE→PATH→系统标准目录→便携目录。  
arch 默认 x64（32位Windows为ia32），requireNpm 默认 true，useSystem=false 禁用系统复用。  
version 默认24.22.2，仅固定便携版本；系统版本由可选 accept(runtime) 决定是否兼容。  
可选 installRoot、probeTimeout（默认5000ms）、stop()。校验会运行候选 node.exe，不是安全沙箱。

## nodeRuntimeDescriptorObject 成员列表 <a id="nodeRuntimeDescriptorObject" href="#nodeRuntimeDescriptorObject">&#x23;</a>

### nodeRuntimeDescriptorObject.arch <a id="nodeRuntimeDescriptorObject.arch" href="#nodeRuntimeDescriptorObject.arch">&#x23;</a>
实际Node进程架构：x64、ia32或arm64。

### nodeRuntimeDescriptorObject.nodeDir <a id="nodeRuntimeDescriptorObject.nodeDir" href="#nodeRuntimeDescriptorObject.nodeDir">&#x23;</a>
Node 安装目录。

### nodeRuntimeDescriptorObject.nodeExePath <a id="nodeRuntimeDescriptorObject.nodeExePath" href="#nodeRuntimeDescriptorObject.nodeExePath">&#x23;</a>
node.exe 完整路径。

### nodeRuntimeDescriptorObject.npmCliJsPath <a id="nodeRuntimeDescriptorObject.npmCliJsPath" href="#nodeRuntimeDescriptorObject.npmCliJsPath">&#x23;</a>
node.exe 同目录下 node_modules/npm/bin/npm-cli.js；requireNpm=false 时可能为 null。

### nodeRuntimeDescriptorObject.source <a id="nodeRuntimeDescriptorObject.source" href="#nodeRuntimeDescriptorObject.source">&#x23;</a>
explicit、environment、path、system或portable。

### nodeRuntimeDescriptorObject.version <a id="nodeRuntimeDescriptorObject.version" href="#nodeRuntimeDescriptorObject.version">&#x23;</a>
实际运行得到的 x.y.z 版本号，无v前缀。
