如何在nbb中配置并使用ClojureScript的Hiccups库?
在nbb中使用Hiccups库的正确配置示例
问题原因
之前报错是因为引入了错误的Hiccups命名空间,Hiccups的核心渲染功能位于hiccups.core命名空间,而非根hiccups命名空间。
1. 配置依赖文件(nbb.edn)
在项目根目录创建该文件,声明Hiccups依赖:
{:deps {hiccups/hiccups {:mvn/version "0.3.0"}}}
2. ClojureScript脚本(example.cljs)
;; 定义命名空间,引入Hiccups核心模块 (ns example (:require [hiccups.core :as hiccups])) ;; 封装Hiccup转HTML的函数 ;; 参数为Hiccup格式的数据结构,返回对应的HTML字符串 (defn render-html [hiccup] (hiccups/html hiccup)) ;; 将需要暴露给Node的函数包装为JS对象 ;; nbb的loadFile会返回这个对象供JS调用 #js {:renderHtml render-html}
3. Node调用脚本(index.js)
// 导入nbb的loadFile函数,用于加载ClojureScript文件 import { loadFile } from 'nbb' // 异步加载example.cljs,解构出导出的renderHtml函数 const { renderHtml } = await loadFile('example.cljs') // 调用渲染函数,传入Hiccup结构,打印结果 console.log(renderHtml(['span', 'Hello, World!']))
运行验证
在终端执行命令:
node index.js
会输出:
<span>Hello, World!</span>
内容的提问来源于stack exchange,提问作者Sir Robert
相关产品推荐
相关产品推荐

