问题标签 [boot-clj]

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.

0 投票
1 回答
246 浏览

clojure - 为什么clojure boot中任务的执行顺序会发生变化?

如果我comp在任务上使用,执行顺序是从左到右。如果我comp在匿名函数上使用,执行顺序是从右到左。这种不一致如何合理?

0 投票
1 回答
120 浏览

clojure - 为什么我的 clojure 启动脚本停止运行

我想用 clojure boot 启动一个必须继续运行的服务器。所以我制作了一个-main函数,以便我可以运行./build.boot并执行主函数。在 main 函数中,我启动一个非守护线程,只要有一个非守护线程,JVM 就会继续运行。但是,引导脚本停止,我的服务器也停止了。我究竟做错了什么?

输出

之后脚本结束。

0 投票
1 回答
286 浏览

clojure - 使用 Boot clojure 实现自动化

我一直在尝试尽可能地遵循教程,但对于我的生活来说,似乎无法让实时重新加载工作

我的目录结构如下:-

我有以下 build.boot

我的流程输出似乎没问题

编写 adzerk/boot_reload/init653.cljs 以连接到 ws://localhost:9001... 编写 boot_cljs_repl.cljs...

正在启动文件监视程序(CTRL-C 退出)...

将 :require adzerk.boot-reload.init653 添加到 main.cljs.edn ... nREPL 服务器在主机 127.0.0.1 的端口 9000 上启动 - nrepl://127.0.0.1:9000 添加 :require adzerk.boot-cljs-repl到 main.cljs.edn... 编译 ClojureScript... ?js/main.js 2016-07-23 02:38:50.287:INFO::clojure-agent-send-off-pool-0:记录已初始化 @51878ms 2016-07-23 02:38:50.450:INFO:oejs。服务器:clojure-agent-send-off-pool-0: jetty-9.2.10.v20150310 2016-07-23 02:38:50.501:INFO:oejs.ServerConnector:clojure-agent-send-off-pool-0:已启动 ServerConnector@4451c4ae{HTTP/1.1}{0.0.0.0:3000} 2016-07-23 02:38:50.506:INFO:oejs.Server:clojure-agent-send-off-pool-0: 已启动 @52097ms 已启动 Jetty在http://localhost:3000写入目标目录...经过时间:33.710 秒

我去网址...一切都检查出来了。然后我尝试更新 .cljs 和 .html 文件,但什么也没有……除非我自己手动重新加载浏览器,否则不会重新加载刷新更新

我只是不明白......这应该如何工作?我究竟做错了什么?

0 投票
1 回答
214 浏览

emacs - boot-clj: cider-jack-in 后的浏览器 repl

我在 emacs 中启动“引导开发”过程以便之后将其与苹果酒一起使用的工作流程是这样的:

  • 转到外壳缓冲区。
  • 输入“引导开发”
  • 等到消息“时间已过...”
  • 苹果酒连接(输入,输入)

如果它是 ClojureScript 项目,可以使用以下命令启动浏览器 repl:

当使用 cider-jack-in 来缓解这一点时,我在最后一步中遇到了问题,即 ClojureScript repl。这是错误消息的开头:

(完整的信息可以在这里找到:http: //pastebin.com/chBNByKG

我确实根据苹果酒手册添加了 ~/.boot/profile.boot 。

0 投票
1 回答
696 浏览

clojure - 在 boot-clj 项目中使用 resources/public 目录

我正在尝试设置一个启动项目,该项目使用一个资源目录,其中包含一个公共子目录。后者应包含例如所有与 Web 相关的内容、编译的 clojurescript 等。

这对于您想要持有不打算公开公开的资源的情况是有意义的。

在没有额外的公共目录的情况下,它可以完美地工作。尝试使用附加的子目录时,我遇到了错误。以下是相关配置:

在 build.boot 中:

从资源目录内部:

而 main.cljs.edn 看起来像:

调用boot dev时会发生以下情况: ClojureScript 继续编译错误,直到手动终止该进程。它看起来像是与某些相对路径相关的递归错误。

而它继续运行的时间越长,就会public/public/public/..扩展。

有人建议可以解决这个问题吗?


更新

这是问题的更新版本:

考虑资源文件夹的这种结构:

以及 build.boot 中的以下部分:

'myapp.server/handler 知道只提供来自资源/公共的文件(由wrap-resource或 compojure 等效实现resources。后者甚至默认为“私有”。

但是问题发生得更早:当运行boot dev整个资源目录时,目标目录中会被复制,private_file.txt当然包括。(这是预期的行为吗?,我的意思是文件可能会很大,然后它会占用双倍的磁盘空间)

在这一点上,我不确定 main 内部的 :asset-path 如何影响这一点。在此处的示例中,我将其保留为“js/main.out”,这可能是不正确的。

0 投票
1 回答
147 浏览

reactjs - boot-clj clojurescript 项目 w/ 试剂和 react-with-addons?

有人熟悉使用 boot-clj 并将cljsjsreact-with-addons 打包到一个试剂项目中吗?试剂已经需要反应,因此您必须明确列出排除项,如此处所述。尽管如此,构建过程总是输出 react.inc.js 而不是 react-with-addons.inc.js。这是我的启动文件...

如果我查看试剂构建过程,它似乎需要 r-dom 和 r-dom/server 通过 cljsjs 包,然后从 webpack 构建中提供自己的反应:

如果有人能对为什么引导继续吸引非插件反应有所了解,我将不胜感激。

0 投票
1 回答
177 浏览

emacs - cider-jack-in 后启动启动任务

通过 cider-jack-in 启动启动项目后,如何启动特定的启动任务?

在 repl(dir boot.user)中揭示了build.boot. 但是,通过eg调用一个(dev)没有效果,至少该任务中定义的环服务器无法连接。从命令行使用时boot dev,它可以工作。我需要切换到 cider-jack-in 的原因是它看起来在 shell/cider-connect 方法中没有办法打印/记录到 emacs 缓冲区而不是默认 shell(它与所有编译消息)。

0 投票
0 回答
82 浏览

emacs - cider-connect 内部的引导刷新

按照建议的步骤后

https://github.com/samestep/boot-refresh

从引导项目中使用 cider-jack-in 时,预期的热重载行为有效。

但是,在以下情况下它不起作用。考虑这个引导任务:

相关部分是:nrepl关键字。

触发此任务后,可以在 4000 端口连接到 nrepl 服务器,其优点是可以在开发过程中访问应用程序的实际状态。(有关详细信息,请参阅此帖子)

这可以通过cider-connect. 然而,在那里热重载已经消失了。该:reload true选项可能会在这里混淆,这只会在 http 请求完成时触发源重新加载。但我正在寻找更通用的引导刷新方法。


注意:这里的目的是在服务器端进行实时重新加载行为,这类似于客户端已知的概念(figwheel 或 boot-reload)。

0 投票
2 回答
259 浏览

clojure - boot-clj:从文件集中仅提取某些文件夹的任务+重命名它

考虑一个具有资源文件夹的 Clojure 项目,该文件夹包含一些文件和另一个名为“public”的文件夹,其中包含一些 Web 内容。

我正在寻找一个启动任务,它编译 ClojureScript,然后仅将公共目录移动到全局文件系统中的另一个目录。最后,文件夹应重命名为“project- version ”。

以下不起作用,因为move-files仅适用于文件而不适用于目录。但是,我认为它澄清了这个想法:

在此之后,应该有一个文件夹/some/path/web_dirs/My-0.1.0,其中包含项目所有公共文件的编译版本。

0 投票
0 回答
116 浏览

maven - boot-clj:在 maven 存储库中安装 uberjar

有没有办法将 uberjar 安装到本地 maven 存储库中?

它通常是存储它们的好地方,还是将 uberjar 构建保存在单独的目录中更好?我的意思是,我在想 og 为本地存储库中的每个版本都有一个 uberjar 和一个常规 jar,但我不确定这一点。

无论如何,以下会产生错误: