1
0
Files
Skill/skills/lyxy-runner-js/references/best-practices.md
2026-02-25 17:36:42 +08:00

2.1 KiB
Raw Blame History

最佳实践和输出处理

最佳实践

  1. 始终先检查 Bun 环境 - 所有场景第一步都执行 bun --version
  2. 根据用户意图选择场景 - 查看快速参考选择合适的使用方式
  3. 单独处理 stdout/stderr - 以区分输出和错误
  4. 检查退出码 - 以检测脚本失败
  5. 使用 ESM imports - 使用 import from 编写现代 JavaScript
  6. 捕获并显示错误 - 以帮助用户调试问题

输出处理

标准输出

所有 console.log(), console.info(), console.warn() 输出都到 stdout

bun "$TEMP_FILE"  # stdout 由调用代码捕获

错误输出

console.error() 输出到 stderr

bun "$TEMP_FILE" 2>error.log  # 单独捕获 stderr

退出码

脚本可以设置自定义退出码:

process.exit(1) // 错误
process.exit(0) // 成功

调用者接收这些退出码以确定执行状态。

临时文件管理

执行后 不会主动删除 临时文件。这是设计使然:

  • 操作系统自动管理临时目录空间
  • 文件可以保留用于调试目的
  • 大多数操作系统定期清理旧的临时文件

辅助函数 API

get_temp_path.js

为脚本执行生成唯一的临时文件路径。

CLI 使用方式:

bun skills/lyxy-runner-js/scripts/get_temp_path.js <extension>

参数:

  • extension (可选): 文件扩展名。默认为 js。常用值: js, ts, mjs, mts

输出: 返回类似 /var/folders/.../lyxy-runner-js-1234567890-abc123.js 的路径

路径格式:

  • 使用操作系统临时目录Unix 上为 /tmpWindows 上为 %TEMP%
  • 前缀: lyxy-runner-js-
  • 时间戳: 自纪元以来的毫秒数
  • 随机字符串: 7 字符字母数字
  • 扩展名: 参数中提供的值

示例:

$ bun skills/lyxy-runner-js/scripts/get_temp_path.js js
/var/folders/8m/0hm18pdd7ts2bwp0530drz500000gn/T/lyxy-runner-js-1770257905333-na6ujx.js

$ bun skills/lyxy-runner-js/scripts/get_temp_path.js ts
/var/folders/8m/0hm18pdd7ts2bwp0530drz500000gn/T/lyxy-runner-js-1770257905333-v8yzt.ts