Вам нужно добавить зависимость, чтобы использовать вашу библиотеку из другого проекта. Для этого добавьте вектор (кортеж-2) к вектору, который является значением ключа :dependencies
в файле project.clj. Вот пример:
:dependencies [[org.clojure/clojure "1.7.0"]
[org.clojure/clojurescript "1.7.170"]
[org.clojure/core.async "0.2.371"]
[default-db-format "0.1.0-SNAPSHOT"]
[com.andrewmcveigh/cljs-time "0.3.14"]]
Моя собственная локальная библиотека называется default-db-format
. Это действительно не отличается от добавления зависимости для com.andrewmcveigh/cljs-time
.
Как вы говорите, вы уже можете это сделать, но возникают проблемы с подключением REPL к проекту самой библиотеки. Когда вы идете (in-ns 'some-path)
, вам нужна одиночная кавычка перед some-path
. Обратите внимание, что некоторая дорожка - это совсем другое дело с именем вашей библиотеки.
Вместо того, чтобы использовать lein repl
, вы можете использовать фигурную замену - если ваш проект настроен с помощью маховика. Моя библиотека имеет только одну точку входа, и это lein figwheel devcards
. После этого у меня не было никаких проблем, собираются в пространство имен и опробовать функцию:
cljs.user=> (in-ns 'default-db-format.core)
nil
default-db-format.core=> (check 1 2)
Как noisesmith упоминался, имеющий REPL в вашем IDE является лучшей настройкой. Невозможно набирать текст с помощью нажатия кнопки (или нажатия клавиши) только предварительно настроенные REPL (на пространство имен). Инструкции по настройке Figwheel/Cursive here.
В каком пространстве имен используется REPL? Я обычно переключаюсь через '(in-ns NAME)'. –
dir также должен работать из других пространств имен. Тем не менее, попытка (in-ns ..) вызывает ту же ошибку, о которой упоминалось выше ... –
'in-ns' даст вам, казалось бы, неиспользуемую repl, если вы запустите перед загрузкой этого кода пространства имен. '(clojure.core/refer-clojure)' спасет repl от этого состояния. – noisesmith