SuperAPI AI 工具集

clojurescript-nbb

测试与质量

查看项目

更新于 10-15 20:09

技能介绍

用途:该技能用于编写、审阅和调试 nbb(babashka/nbb)脚本,即在 Node.js 上通过 SCI 解释器实现的即时 ClojureScript 脚本,无需传统 CLJS 编译管线。 主要能力:启动快(约 170ms),无构建步骤,无 :optimizations、externs。支持 SCI 解释的语言子集(当前无 deftype),可直接在 .cljs 中 defmacro 并在同文件使用;默认支持 npm 互操作,用 :require 加动态 import() 解析脚本本地 node_modules,取默认导出用 $default 后缀,如 ["shelljs$default" :as sh]。内置 promesa(promesa.core),推荐用 p/let、p/do! 处理 Promise,而非手写 .then 链。内置 cljs.test,可直接 :require 并调用 run-tests 自运行。内置 reagent.core(懒加载)配合 npm ink 构建终端 UI,用法与浏览器 Reagent 一致。 用法:入口可定义 -main 并以 nbb -m my.namespace 运行,或直接 nbb script.cljs 执行顶层表达式。nbb.core/file 提供当前文件路径,结合 invoked-file 实现类似 name=="main" 判断。可用 #?(:org.babashka/nbb ... :cljs ...) 条件分支。REPL 支持控制台 REPL、socket-repl 和 nrepl-server。 适用场景:脚本、命令行工具、小型终端应用、测试。 限制:SCI 仅支持 CLJS 子集,较新的 ^:async/await 等特性不保证可用;不适用于浏览器优化打包,这类需求应用 shadow-cljs;Maven 依赖需 nbb.edn 且 bb 在 PATH。未提供的具体版本、性能数据等暂未说明。