Как использовать пакеты cljsjs в проекте deps.edn - PullRequest
0 голосов
/ 18 октября 2019

Я попытался добавить зависимость в свой 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

Инструкции , которые я нашел, относятся к leinigen (project.clj). Нужно ли делать что-то особенное, чтобы это работало в deps.edn?

1 Ответ

1 голос
/ 18 октября 2019

Вам нужно сделать js / jsyaml.safeLoad, и в ответе вам нужно использовать функцию 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объекты со своим именем.

...