如何在clojurescript中包含外部JavaScript库

时间:2017-03-14 11:57:49

标签: javascript clojurescript datamaps

我们正在尝试在目前用angularjs编写的项目中引入clojurescript。我们正在使用外部JavaScript库 - 数据映射。我们使用:foreign-libs编译器选项以下列方式获取依赖项文件:

 :compiler {:output-to "resources/public/js/testable.js"                                                                       
                              :main "gofigure.test-runner"                                                                                       
                              :foreign-libs [{:file "globe.js"                                                                                   
                                              :provides ["globe"]}                                                                               
                                             {:file "datamaps/src/js/datamaps.js"                                                                
                                              :provides ["datamaps"]}                                                                            
                                             {:file "d3/d3.js"                                                                                   
                                              :provides ["d3"]}                                                                                  
                                             {:file "topojson/topojson.js"                                                                       
                                              :provides ["topojson"]}}}

我们正面临一个错误:"无法读取属性' world'未定义"

我们将此问题缩小到datamaps文件中的一个问题,我们认为这是因为在foreign-libs选项中我们提到了特定的datamaps.js文件,但是我们错过了datamaps文件夹中的其他文件,因此不能准确地编译整个库。

有没有办法将整个库包含为依赖项而不仅仅是单个文件?

1 个答案:

答案 0 :(得分:0)

Shadow-cljs可以解决此问题。

Shadow-cljs可靠,最佳且使用最少的配置即可解决这些问题。特别是,shadow-cljs允许您使用npm或yarn安装npm模块,并使用生成的package.json捆绑外部依赖项。

有关更多详细信息 https://gist.github.com/jmlsf/f41b46c43a31224f46a41b361356f04d