原子包,clojurescript,谷歌关闭和依赖管理

时间:2015-03-20 15:57:40

标签: clojurescript google-closure-library atom-editor

我正在用ClojureScript编写一些atom(编辑器)包。我遇到了依赖负载问题。

编译时ClojureScript生成这样的文件(main.js):

goog.addDependency("base.js", ['goog'], []);
goog.addDependency("../cljs/core.js", ['cljs.core'], ...)
goog.addDependency("../clojure/browser/event.js", ...)

显然,ClojureScript在很大程度上依赖于Google Closure依赖管理。

但是,为了能够使用Google Closure,我需要包含goog / base.js文件。

我找到的唯一方法是添加到goog / base.js:

module.exports = goog

并添加到main.js:

require('./goog/base.js')

这是非常糟糕的方法,因为生成了这些文件 - 因此可以覆盖它们。

此外,发布编译不包括这些行。

问题是如何使用这两种依赖系统?

或者是否可以使用没有Google Closure的ClojureScript?

请指教,谢谢!

1 个答案:

答案 0 :(得分:3)

如果您将ClojureScript :optimizations设置为:none以外的其他内容(例如:whitespace),那么生成的.js文件将包含内联的Google Closure代码,您赢了不必单独引用它。

(请注意,这意味着您可能无法在ClojureScript代码中使用main函数,但您只需在顶层某处调用main函数。)