问题标签 [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.
clojure - 引导:在处理程序中从类路径提供非根目录 + cljs 重新加载
我试图将 leiningen 项目转换为引导:https ://github.com/borkdude/lein2boot 。
它使用服务任务来服务处理程序。处理程序提供 API 并提供文件。使用重新加载任务,我希望能够重新加载 javascript。
我需要将我的 html 和 javascript 放在资源目录的根目录(在本例中为“assets”),因为重新加载任务使用完整资源路径 ( /main.js
) 将更改的 javascript 发送到浏览器。这意味着我还必须服务于我的类路径的根:(resources "/" {:root ""})
在 Compojure 中。这样做的问题是任何人都可以从我的整个类路径中请求任何文件:不好。
当我将 javascript 重新定位到assets/public/main.js
公共目录并从中提供服务时(resources "/" {:root "public"})
,可以在“/main.js”处请求文件,但重新加载任务会通知浏览器从“/public/main.js”重新加载文件,这会导致404。
我怎么解决这个问题?
clojure - 我如何使用 Boot (clojure) 添加 github/local 依赖项
例如,我想分叉一些现有的 clojar,扩展它并在我的项目中使用。
如果没有推送到 clojars/maven,我怎么能做到这一点?
对这两个选项都感兴趣:链接到 github 和本地路径。
谢谢!
UPD
我想要的是包含一些现有的 Clojure 项目作为依赖项,类似于 ruby gem 允许的。这可以通过 Boot 实现吗?或者我总是需要编译成java?
clojure - Clojure:在特定命名空间中启动 repl
我已经安装了 boot-clj,并且希望能够在外部编辑器中编辑 .clj 文件,并单独运行一个命令行 REPL,我可以从中调用我在 .clj 文件中更改的函数。不需要特殊的重新加载命令。
另一件事是我不想手动键入命令来包含命名空间 - 我只想运行一个脚本,将我带入命名空间,这样我就可以立即调用现有函数。
文件名:
文件中的一些内容:
我想直接进入 REPL 并(my-range 0 3)
查看它是否产生我想要的结果。
这是什么设置?我需要运行的脚本文件是什么样的?
我目前的理解是答案看起来像这样:
maven - 将 GPG 加密的凭据(或特定环境变量)与 boot-clj 和 s3-wagon-private 一起使用
在引导 wiki ( https://github.com/boot-clj/boot/wiki/S3-Repositories ) 中,它指定您可以内联 AWS 凭证以将 S3 用作 Maven 存储库。从安全角度来看,这是次优的,因为我不想签入 AWS 凭据,即使它们的权限有限。
在带有 s3-wagon-private 的 leiningen 中,您可以通过环境变量指定访问密钥和密钥:
或者,从特定的环境变量,使用:
或者使用 GPG 加密~/.lein/credentials.clj.gpg
文件:
boot 中的push
任务似乎支持 GPG 加密凭据以部署到 Clojars(https://github.com/boot-clj/boot/wiki/Deploying-with-Boot)中$BOOT_HOME/credentials.clj.gpg
。所以,一般来说,boot 似乎支持 GPG。
当我尝试任一环境变量方法时,我收到以下错误,表明不支持这种形式的凭据:
GPG 方法似乎无法获取凭据,并导致 S3 出现 403 错误。
我想我可以(System/getenv "AWS_ACCESS_KEY_ID")
用来直接读取存储库映射中的 env 变量,但如果有一个受支持的机制,我宁愿使用它。如果可以从安全角度以及设置多个 S3 Wagon 而无需处理环境变量,那么 GPG 加密凭证将是我们的理想解决方案。
我在 OS X El-Capitan 上使用最新的 Boot (2.4.2)。GPG 可以在命令行上成功解密凭证,即使在安静模式下(gpg --quiet --batch --decrypt ~/.boot/credentials.clj.gpg
有效)。将凭证直接放在存储库映射中确实有效,并且相同的credentials.clj.gpg
文件在 lein 中有效。不过,我是 Boot 新手,所以我可能遗漏了一些明显的东西!
clojure - 使用 boot-clj 创建战争
我想创建一个可以使用 tomcat 部署的战争。使用lein uberwar
做的工作很好,但是对启动做同样的事情似乎不起作用。我可以构建一个 jar 并运行它,但是战争失败了
2015 年 12 月 9 日上午 12:15:31 org.apache.catalina.loader.WebappClassLoader validateJarFile 信息:validateJarFile(/var/lib/tomcat7/sites/geeknow.guru/DEBUG##0.1.7/WEB-INF/lib/ javax.servlet-api-3.1.0.jar) - jar 未加载。请参阅 Servlet 规范 3.0,第 10.7.2 节。违规类:javax/servlet/Servlet.class
我正在使用以下 build.boot
firefox-addon-sdk - 使用 Boot 时将已编译的 Cljs 构建到/移动到任意目录的惯用方法是什么?
我正在使用 ClojureScript、Boot 和 Boot-Cljs 构建 Firefox 附加组件。Firefox 的 Add-On SDK 采用了一定的目录结构;就我而言,我需要一个project-root/data
目录来存放我的contentScriptFile
.
我应该如何构建一个 ClojureScript 文件,该文件存在project-root/src/foo/core.cljs
并输出或移动到project-root/data
? 我尝试使用boot sift --move
无济于事(我承认我不完全理解此任务应该如何工作,需要哪些参数等),使用main.cljs.edn
清单并调整其位置,,:asset-path
等:output-path
无济于事。
我对 Boot 很感兴趣,想弄清楚这一点,但我不得不承认,我在这方面浪费了很多时间(而且看起来我并不孤单)。鉴于我已经有一个简单的、可工作的 Clojure 脚本,它直接调用 ClojureScript 编译器 - 并使用它:output-to
来完成我需要的工作 - 我可能会恢复使用这种方法来完成这个实验。
maven - 如何将非 Maven 代码添加到 boot-clj/boot 中?
我通过在 App Engine 上开发 Clojure工作。然后我尝试使用boot复制相同的功能。但是,我不知道如何在启动项目中包含 Google App Engine(非 Maven)代码。感谢任何帮助我度过这一点的帮助。
以下所有代码都托管在这里
这是当前工作project.clj
这是我正在处理的当前损坏build.boot
的,基于以前的project.clj
.
它失败了
显然,boot
不知道如何获取com.google.appengine
代码。在lein
我的世界里,lein localrepo install ...
我经历了一些关于如何将非 Maven 项目安装到我的本地存储库中的步骤(在文章中)。似乎 App Engine Jar 应该仍然在我的本地存储库中,但启动似乎没有看到它们。如何使 appengine jar 在我的引导项目中可见?
clojure - 无法启动远程 ClojureScript bREPL(它显示“无法解析符号...”)
ClojureScript 菜鸟在这里。
我正在使用 Boot 遵循以下 ClojureScript 教程:https ://github.com/magomimmo/modern-cljs/blob/master/doc/second-edition/tutorial-02.md#browser-repl-brepl
boot repl -c
我可以按照它并通过运行andn then将命令行/引导 repl 连接到我的站点(start-repl)
,但我想使用基于 REPL 的更丰富的文本编辑器连接到该站点。
我已经为 atom 文本编辑器下载了ProtoRepl 。我可以通过给它repl的主机+端口来很好地连接到repl,但是当我尝试运行(start-repl)
它时会抛出错误:
似乎我缺少一些 ClojureScript/boot 特定的导入,但我不确定要添加什么或如何添加它。
以下是一些额外的调试信息:
在工作启动 repl 连接上运行 (def start-repl) 与失败的 proto-repl 连接:
引导复制:
原型复制:
vim - 有没有办法忽略 boot-clj 的监视任务中的文件?
我在 clojurescript 项目中使用引导,到目前为止开发流程非常顺利。但是有一件事让我很困扰。
我使用 VIM 作为我的编辑器,它为它的缓冲区创建临时文件,~
最后命名的著名文件。每次我编辑文件时,vim 都会为其缓冲区创建临时文件,并且当我使用内置watch
的引导任务时,即使我没有保存任何真实文件,它也会触发重新加载。
这是我的启动任务定义:
我想将watch
任务配置为忽略任何以结尾的文件,~
因此只有在我保存一些有意义的文件时才会触发重新加载。可能吗?还有其他解决方案吗?
clojure - boot.properties 中需要哪些信息?
我想为使用 Boot 的项目指定 Clojure 版本。根据Boot Wiki ,执行此操作的方法是在我的项目根目录BOOT_CLOJURE_VERSION
中的文件中提供一个值。boot.properties
所以我这样做了:
它似乎工作得很好:
但是,同一个 wiki 页面特别说明要创建这样的boot.properties
文件:
这在开头添加了两行,对我来说看起来像是注释,最后一行指定了引导版本。我为我的项目指定引导版本没有问题,但是 wiki 页面听起来好像是必需的:
注意:使用
boot.properties
文件时,您还必须将项目固定到特定的引导版本,因为文件必须指定这两个变量。
我有点困惑为什么页面特别说boot.properties
在省略这三行时添加这三行似乎不会导致任何问题。此外,如果我使用修订控制,我认为不需要在boot.properties
. 可以省略这些行吗?如果不是,为什么需要它们?