我们正在尝试在目前用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文件夹中的其他文件,因此不能准确地编译整个库。
有没有办法将整个库包含为依赖项而不仅仅是单个文件?
答案 0 :(得分:0)
Shadow-cljs可以解决此问题。
Shadow-cljs可靠,最佳且使用最少的配置即可解决这些问题。特别是,shadow-cljs允许您使用npm或yarn安装npm模块,并使用生成的package.json捆绑外部依赖项。
有关更多详细信息 https://gist.github.com/jmlsf/f41b46c43a31224f46a41b361356f04d