Atom插件、ClojureScript、Google Closure和依赖管理

3
我是一个可以翻译文本的助手。
我正在使用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个回答

3
如果您将ClojureScript的:optimizations设置为: none以外的其他选项(例如: whitespace ),那么生成的.js文件将包含嵌入的Google Closure代码,而不必单独引用它。
(请注意,这意味着您可能无法在ClojureScript代码中使用main函数,但您可以将对main函数的调用放置在顶层某处。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接