问题标签 [cljsbuild]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
testing - 如何获得简单的 clojurescript 编译的直接结果?
我希望能够在测试时将 javascript 代码注入我的应用程序。按照这种推理,我在 repl 中执行以下操作。
我那时
是的,看来这就是我想要的。我可能弄错了,但我认为我不需要“base.js”依赖项,因为它已经包含在正在运行的正在测试的应用程序中(正在使用 :simple :optimizations)。
我的问题是,我怎样才能得到文件的内容out/x8LL7.js
?我只想要写入的字符串,out/x8LL7.js
因为我对从cljs.closure/build
.
如果这不容易,那我想我可以解析返回的 deps 字符串,自己打开文件然后使用内容;没有大碍。不过,我希望有更直接的方法。
clojure - Clojurescript 命名空间刷新
我正在使用 lein cljsbuild 并想找到一种方法来重新加载我的编译文件而不刷新浏览器。从我的浏览器连接的 REPL 中是否有内置方法可以做到这一点?
leiningen - 在 ClojureScript 中使用 Cljsbuild 编译外部 JS 文件
我正在尝试编译我们使用 lein-cljsbuild 拥有的一些 JS 库,以将它们集成到我们的 ClojureScript 代码库中。首先,我在每个文件的顶部添加了一些 goog.provide,这些文件根据它们的命名空间(就像在 Java 中一样)在目录树中分层组织。那就是命名空间 abc 在 src-js/libs/a/b/c.js
我已将 JS 文件放在 src-js/libs 中项目的根目录中,并且我有以下 : lein-cljsbuild 的编译器选项:
没有任何 JS 文件被编译到已编译的应用程序文件中。怎么了?
我还尝试将它们放入 resources/closure-js/libs 中,但没有成功。
我正在使用 lein-cljsbuild 0.3.0。
clojure - lein ring 服务器不会自动重建
我正在编写一个小型 clojurescript 项目,并遵循了许多使用 lein ring 作为开发 Web 服务器的 lein cljsbuild 示例。
lein ring server
我曾经在本地机器上运行以提供网站服务。现在,当我更改包含打嗝 html 定义的 clj 文件时,似乎 lein ring 服务器不会自动重建和重新启动。
根据https://github.com/weavejester/lein-ring应该是这种情况(也许我读错了,但它说重新加载应该是默认值)。
我的 project.cljs 或多或少等同于https://github.com/emezeske/lein-cljsbuild/blob/master/example-projects/advanced/project.clj
有任何想法吗?
clojurescript - 在 Clojurescript 中定位不匹配的分隔符
有时,我发现自己处于不匹配大括号、括号或方括号的情况:{}()[]
在 Clojurescript 中。我正在使用leininingen
,cljsbuild
我很难追踪错误来源。通常它归结为这样的事情:
Compiling "resources/public/js/whitespace.js" failed.
clojure.lang.ExceptionInfo: java.lang.RuntimeException: Unmatched delimiter: ) at line 1
随后是一个扩展的堆栈跟踪,似乎不包含文件名、行号信息。
我怎样才能获得更多有用的信息?
到目前为止我的解决方法
使用版本控制来查找文件及其先前状态的差异。然后查看括号更改的位置。
广泛使用 vim 的括号
%
来进行救援。
clojure - lein-cljsbuild 源-cljs 目录-> 输出-js 目录?
查看 cljsbuild 文档 https://github.com/emezeske/lein-cljsbuild
这个需要
:source-paths 作为目录
:output-to 作为 js 文件
为什么不源目录-> 输出目录?
我们如何管理要编译为许多输出文件的许多源文件?
是否有任何配置可以映射 *.cljs @sourceDir -> *.js @targetDir ?
node.js - ClojureScript + momentjs (node.js) 以 .format("dddd, MMMM Do YYYY, h:mm:ss a") 失败
我正在尝试在 node.js + clojure 部署momentjs上向控制台显示当前日期时间格式。
工作节点js代码:
控制台输出:
所以,我尝试了一个 clojureScript 代码,如下所示:
控制台输出变为
由于某种原因,日期时间部分显示为一堆null和undefined 。
编译好的js代码:
问题发生的地方看起来没有那么问题:
任何想法?谢谢。
clojurescript - 同一页面上有多个 ClojureScript 文件
我有一个使用 Jasmine 测试 JavaScript 的项目。我正在尝试切换到使用 ClojureScript 作为前端。我project.clj
的就像
因此,所有.cljs
文件都src/clojurescript
被编译为main.js
,所有文件.cljs
都spec/clojurescript
被编译为mainSpec.js
. 当我加载 Jasmine 页面时,两个.js
文件都已加载,但测试未运行。在控制台中,我得到Error: Namespace "goog.debug.Error" already declared.
两个.js
文件在顶部都有相同的 ~30k 行 google 关闭代码,这导致了错误。如果我从中删除此代码mainSpec.js
运行良好。有没有办法告诉 cljsbuild 将此代码从规范文件中删除?
namespaces - 引用外部 clojurescript 命名空间
如果在 .cljs 文件中我定义了这样的文件:
主文件
第二文件.cljs
我收到“引用的 var project.secondfile/my-var 在 src-cljs/main.cljs 中不存在”。但是,它在浏览器中正常工作,因为两者都已编译(并且使用编译 :whitespace 它们可以很好地相互引用)。但显然,它在 bREPL 中不起作用,因为它们没有相互引用。
这是不可避免的事情还是我做错了什么?
谢谢!