clojurescript - 原子包、clojurescript、谷歌闭包和依赖管理

标签 clojurescript google-closure-library atom-editor

我正在使用 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/

相关文章:

clojure - 为什么要将 ClojureScript 源目录放在 :source-paths? 中

google-closure - 如何使用单个事件节点将事件分配给多个子 DOM 元素?

javascript - SHA512 在 CryptoJS 和 Closure 中不一样

javascript - 如何完美重叠两个(相同的)元素?

python - Pygame 显示空白的白色窗口

atom-editor - Atom 编辑器安装包失败

clojure - 具有 leiningen 的 clojurescript 中的依赖项

reactjs - 如何将 clojurescript 集成到现有的 javascript 代码库中?

Clojurescript 编译速度很慢

git commit 命令与 core.editor 等于atom