首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ClojureScript中使用React库

如何在ClojureScript中使用React库
EN

Stack Overflow用户
提问于 2020-05-23 19:13:27
回答 1查看 1.2K关注 0票数 2

我正在重新框架/试剂/ leiningen项目中尝试使用cljsjs/vis,但是当将这个库导入命名空间时会出现错误。

代码语言:javascript
复制
cljsjs/vis in namespace required but not available

尝试使用另一个库进行图表/数据可视化,但仍然有相同的结果。将JS库导入到clojurescript项目似乎有问题。

莱宁根project.cljs文件

代码语言:javascript
复制
(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文件

代码语言:javascript
复制
(ns my-project
  (:require [cljsjs.vis]))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-23 22:26:28

影子-cljs不支持CLJSJS包。相反,您可以安装那些CLJSJS包所代表的原始npm包,并直接使用它。

所以而不是

代码语言:javascript
复制
(ns my-project
  (:require [cljsjs.vis]))

;; accessing vis via js/WhateverGlobalItUses

你做了

代码语言:javascript
复制
(ns my-project
  (:require ["vis-network" :as vis]))

;; then use "vis" directly

npm版本被分割成多个独立的套餐,所以只需包含您想要使用的任何内容。

使用npm包的影子cljs文档解释要详细得多。还有一个使用示例回购的旧vis-network

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61977371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档