如何在ClojureScript中使用React库

问题描述 投票:0回答:1

我正在尝试在我的[[re-frame / agent / leiningen项目中使用cljsjs / vis,但是在将该库导入名称空间时出现错误。

cljsjs/vis in namespace required but not available
已尝试将另一个库用于图表/数据可视化,但结果仍然相同。导入到Clojurescript项目的JS库似乎出了问题。

leiningen project.cljs文件

(defproject test1 "0.1.0-SNAPSHOT" :dependencies [[org.clojure/clojure "1.10.1"] [org.clojure/clojurescript "1.10.764" :exclusions [com.google.javascript/closure-compiler-unshaded org.clojure/google-closure-library org.clojure/google-closure-library-third-party]] [thheller/shadow-cljs "2.9.3"] [reagent "0.10.0"] [re-frame "0.12.0"] [cljs-ajax "0.7.5"] [cljsjs/vis "4.21.0-1"]] :plugins [[lein-shadow "0.2.0"] [lein-shell "0.5.0"]] :min-lein-version "2.9.0" :source-paths ["src/clj" "src/cljs"] :clean-targets ^{:protect false} ["resources/public/js/compiled" "target"] :shell {:commands {"open" {:windows ["cmd" "/c" "start"] :macosx "open" :linux "xdg-open"}}} :shadow-cljs {:nrepl {:port 8777} :builds {:app {:target :browser :output-dir "resources/public/js/compiled" :asset-path "/js/compiled" :modules {:app {:init-fn test1.core/init :preloads [devtools.preload]}} :devtools {:http-root "resources/public" :http-port 8280 }}}} :aliases {"dev" ["with-profile" "dev" "do" ["shadow" "watch" "app"]] "prod" ["with-profile" "prod" "do" ["shadow" "release" "app"]] "build-report" ["with-profile" "prod" "do" ["shadow" "run" "shadow.cljs.build-report" "app" "target/build-report.html"] ["shell" "open" "target/build-report.html"]] "karma" ["with-profile" "prod" "do" ["shadow" "compile" "karma-test"] ["shell" "karma" "start" "--single-run" "--reporters" "junit,dots"]]} :profiles {:dev {:dependencies [[binaryage/devtools "1.0.0"]] :source-paths ["dev"]} :prod {} } :prep-tasks [])

cljs文件

(ns my-project (:require [cljsjs.vis]))

clojure clojurescript reagent re-frame
1个回答
0
投票
shadow-cljs不支持CLJSJS软件包。相反,您安装那些CLJSJS软件包代表的原始npm软件包并直接使用它。

所以代替

(ns my-project (:require [cljsjs.vis])) ;; accessing vis via js/WhateverGlobalItUses

您愿意

(ns my-project (:require ["vis-network" :as vis])) ;; then use "vis" directly

npm版本被分为多个单独的packages,因此只需包括您要使用的任何内容。

shadow-cljs docs解释使用npm软件包要详细得多。还有一个较旧的example repo使用vis-network

© www.soinside.com 2019 - 2024. All rights reserved.