我正在用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?
请指教,谢谢!
答案 0 :(得分:3)
如果您将ClojureScript :optimizations
设置为:none
以外的其他内容(例如:whitespace
),那么生成的.js
文件将包含内联的Google Closure代码,您赢了不必单独引用它。
(请注意,这意味着您可能无法在ClojureScript代码中使用main
函数,但您只需在顶层某处调用main
函数。)