5

我们正在尝试在当前用 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"]}}}

我们正面临一个错误,上面写着:“无法读取未定义的属性‘世界’”

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

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

4

1 回答 1

1

Shadow-cljs 可以解决这个问题。

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

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

于 2019-04-07T05:20:53.393 回答