如何在 deps.edn 项目中使用 cljsjs 包
How do I use cljsjs packages in a deps.edn project
我试过向我的 deps.edn 添加依赖项:
{:deps {cljsjs/js-yaml {:mvn/version "3.3.1-0"}
...}
但我无法调用该库中的函数。
在 REPL 中:
cljs.user=> (require '[cljsjs.js-yaml])
cljs.user=> js/safeLoad
Execution error (ReferenceError) at (<cljs repl>:1).
safeLoad is not defined
我找到的 instructions 是给 leinigen (project.clj) 的。我需要做一些特别的事情才能让它在 deps.edn 中工作吗?
您需要执行 js/jsyaml.safeLoad 并且在 repl 中您需要使用函数 require
而不是 ns 声明中使用的符号。
bfabry@18723-bfabry /t/foo> plk
ClojureScript 1.10.520
cljs.user=> (require '[cljsjs.js-yaml])
nil
cljs.user=> (js/jsyaml.safeLoad "app:\n bar: baz\n")
#js {:app #js {:bar "baz"}}
cljs.user=>
这些包使用它们自己名称的 js 对象命名空间。
我试过向我的 deps.edn 添加依赖项:
{:deps {cljsjs/js-yaml {:mvn/version "3.3.1-0"}
...}
但我无法调用该库中的函数。
在 REPL 中:
cljs.user=> (require '[cljsjs.js-yaml])
cljs.user=> js/safeLoad
Execution error (ReferenceError) at (<cljs repl>:1).
safeLoad is not defined
我找到的 instructions 是给 leinigen (project.clj) 的。我需要做一些特别的事情才能让它在 deps.edn 中工作吗?
您需要执行 js/jsyaml.safeLoad 并且在 repl 中您需要使用函数 require
而不是 ns 声明中使用的符号。
bfabry@18723-bfabry /t/foo> plk
ClojureScript 1.10.520
cljs.user=> (require '[cljsjs.js-yaml])
nil
cljs.user=> (js/jsyaml.safeLoad "app:\n bar: baz\n")
#js {:app #js {:bar "baz"}}
cljs.user=>
这些包使用它们自己名称的 js 对象命名空间。