我正在使用 ClojureScript 编写一些原子(编辑器)包。我遇到了依赖加载问题。
编译后的 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?
请指教,谢谢!
最佳答案
如果您将 ClojureScript :optimizations
设置为 :none
以外的其他内容(例如,:whitespace
),那么生成的 。 js
文件将包含内联的 Google Closure 代码,您无需单独引用它。
(请注意,这意味着您可能无法在 ClojureScript 代码中使用 main
函数,但您可以调用 main
函数顶层。)
关于clojurescript - 原子包、clojurescript、谷歌闭包和依赖管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29170826/