Если вы хотите использовать npm
модули напрямую, лучше всего использовать ClojureScript. ClojureScript - это библиотека Clojure, которая компилирует код Clojure в JavaScript. Это обеспечивает бесшовную интеграцию с Node.js. Само собой разумеется, что вам нужно будет установить оба Node.js и NPM, чтобы можно было устанавливать зависимости.
В зависимости от того, используете ли вы файл deps.cljs
для настройки вашего проекта ClojureScript или используя файл build.clj
, вам нужно будет добавить зависимости npm
одним из следующих способов:
deps.cljs
Вам нужно добавить еще один ключ на карту зависимостей :
{
;;..
:npm-deps {"react" "15.4.2"
"object-assign" "4.1.1"}
;; ...
}
Тогда вы сможете использовать, например, зависимость react
как таковую:
(ns example.core
(:require [react :refer [createElement]]))
(js/console.log (createElement "div" nil "Hello World!"))
При использовании файла build.clj
ваш файл будет выглядеть примерно так:
(требуется '[cl js .build.api: as b])
(b / build "sr c" {: output-dir "out": output-to "out / main. js": оптимизации: нет: основной 'example.core: install-deps true: npm -deps {: реагировать "15.6.1": реакция-дом "15.6.1"}})
И вы используете зависимости таким же образом:
(ns example.core
(:require [react :refer [createElement]]
["react-dom/server" :as ReactDOMServer :refer [renderToString]]))
(js/console.log (renderToString (createElement "div" nil "Hello World!")))
Если вам требуются дополнительные пояснения, я рекомендую вам взглянуть на с использованием JS модулей в ClojureScript в целом , Расширенная Node.js Поддержка модулей , статья о интеграции модулей Node и краткой статье, которая является своего рода выдержкой из предыдущих постов .