我希望能够在测试时将 javascript 代码注入(inject)我的应用程序。按照这一推理,我在回复中执行以下操作。
=> (cljs.closure/build '(swap! my-project.my-namespace.my-atom inc) {})
<= "goog.addDependency(\"base.js\", ['goog'], []);\ngoog.addDependency(\"../x8LL7.js\", [], []);"
然后我
=> more out/x8LL7.js
<= cljs.core.swap_BANG_.call(null,my_project.my_namespace.my_atom,cljs.core.inc);
是的,看来这就是我想要的。我可能弄错了,但我认为我不需要“base.js”依赖项,因为它已经包含在正在测试的正在运行的应用程序中(使用 :simple :optimizations)。
我的问题是,如何获取文件 out/x8LL7.js
的内容?我只想要写入 out/x8LL7.js
的字符串,因为我没有用到从 cljs.closure/build
返回的 deps 文件字符串。
如果不容易,那么我想我可以解析返回的 deps 字符串,自己打开文件,然后使用内容;没什么大不了的。尽管如此,我还是希望有更直接的方法。
最佳答案
更直接的方法是注入(inject) js 代码(如“var DEBUG=true;”),然后从 clojurescript 引用它。注入(inject) clojurescript 是有风险的,因为没有约定 clojurescript 将被编译的 js 代码——您可能拥有与其他优化设置或 clojurescript 版本完全不同的代码。
关于testing - 如何获得简单的 clojurescript 编译的直接结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14446605/