问题标签 [figwheel]

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 投票
0 回答
206 浏览

clojure - Clojure 构建前和构建后挂钩

我有一个带有以下内容的 project.clj

别名“build-site”将 html 文件和资产导出到构建目录

我想运行无花果轮场景,并希望在无花果轮进程之前运行别名或包含在lean figwheel调用中。

我怎样才能做到这一点?

更新

["run" "-m" "cjohansen-no.web/export" ["cljsbuild" "auto"]]

似乎包括["cljsbuild"....作为参数我怎么能逃脱呢?

["build-site" ["run" "-m" "cjohansen-no.web/export" ] [":cljsbuild" "auto"]]

给我一个

映射文字必须包含偶数个表单。

然而在样本中。project.clj 这似乎是一种公认​​的语法....怎么来的?

继续获取

传递给引用 {:form (quote cjohansen-no.web/export [])} 的 args (2) 数量错误

这是导出文件....

(defn export [] (let [assets (optimizations/all (get-assets) {})] (stasis/empty-directory! export-dir) (optimus.export/save-assets assets export-dir) (stasis/export-pages (get-pages) export-dir {:optimus-assets assets})))

这是别名

"build-site" ["run" "-m" "cjohansen-no.web/export []"] "build" ["cljsbuild" "auto"]

这是命令

lein build-site build

0 投票
0 回答
75 浏览

javascript - 将 figwheel 或 boot 的 cljs-repl 注入任意网页

leiningen 插件 figwheel 或 boot 的对应物可以在任意网页中使用吗?我认为它可以替代浏览器的内置开发者控制台。

这是我想象这个工作流程的一个简单场景:您在浏览器中打开一个任意网站。除此之外,您在终端窗口中有一个浏览器 repl,它由上述工具之一提供。(我猜他们都为此使用了“weasel”。)在终端内部,可以访问 weppages DOM 的当前状态。例如:(set! (.. js/window style backgroundColor) "green"))

我想这应该不会太成问题而无法归档。但是,我遇到了以下问题:

这两个工具实际上只是将一堆 JavaScript 注入到用户的 HTML 页面中。它基本上是:将用户的 ClojureScript 编译为 JavaScript,并通过 websockets 额外实现热重载机制。第二个只是在项目投入生产时省略。

我的想法是将整个捆绑包注入另一个页面。

我使用引导进行尝试。设置好引导的 ClojureScript REPL 后,我在浏览器中打开了 localhost:port。它的初始源代码如下所示:

在页面加载时执行 main.js 之后,许多(超过 100 个)进一步的 javaScript 标记被注入到页面中。我最初的想法是现在打开另一个页面,比如duckduckgo.com,然后将一个脚本标签注入其中,并添加到本地主机的绝对路径。所以,在duckduckgo.com 页面的开发者控制台中,我这样做了:

正如预期的那样,脚本被注入,这总是导致其代码立即执行。我期待所有其他脚本标签现在会自动注入。最后,webSockets 应该连接到 ClojureScript repl。

但是,浏览器控制台中出现以下错误:A call to document.write() from an asynchronously-loaded external script was ignored.

事实上,许多其他脚本标签已被注入。但不是全部。实际上,未建立套接字连接。

所以,看起来有些脚本标签是由我自己使用的机制(通过 appendChild)注入的,其他的应该由document.write("<script...后来导致问题在这里。

有人知道存档的方法吗?

0 投票
1 回答
1343 浏览

clojure - 如何使用 figwheel 为 clojurescript 开发设置 atom 编辑器?

看起来原子编辑器通过各种包具有合理程度的 clojure 和 clojurescript 支持。有没有人有推荐的方法来配置它以使用无花果?显然,这可以使用单独的终端,但我对是否可以使用更集成的编辑 REPL 感兴趣。REPL 在浏览器应用程序中执行代码的地方。

我正在为intellij/cursive ide寻找类似于https://github.com/bhauman/lein-figwheel/wiki/Running-figwheel-in-a-Cursive-Clojure-REPL提供的帮助。

更新:在阅读了在 NRepl 中使用 Figwheel REPL并意识到 atom 包proto-repl提供的“启动 REPL”命令可能已运行lein repl后,我相应地更新了我的项目 -请参阅 gist

启动 REPL 产生了一些有希望的输出(参见 gist),并且应用程序在浏览器中正确启动。

差不多好了!这可行,但到目前为止我还没有找到再次释放端口 3449 的方法。甚至没有关闭编辑器并重新启动。

这是问题

0 投票
1 回答
305 浏览

clojure - 如何使用 lein-figwheel 编译和导入 Java 类?

我添加 :java-source-paths ["src/java"]到我的 project.clj 中,lein uberjar可以工作,但是在运行lein figwheel时出现以下错误:

我将此添加到“:uberjar”部分

有关如何解决此问题的任何线索?

0 投票
1 回答
170 浏览

javascript - 使用 ClojureScript 项目中的 Node.js 库

我正在尝试在基于 Figwheel 的 ClojureScript 应用程序中使用基于 Node.js 的组件( https://github.com/leandrowd/react-responsive-carousel )。

不幸的是,我找不到带有react-responsive-carousel. 由于我的应用程序不是由 Node.js 运行的,因此它不能require等等。

是否有从 ClojureScript 重用 Node.js 库的优雅方法,或者将任何 Node.js 库打包成独立文件的解决方案?

0 投票
1 回答
769 浏览

clojurescript - lein figwheel vs lein cljsbuild auto

lein figwheel 和 lein cljsbuild auto 有什么区别,因为我相信它们都是用来编译 clojurescript 的。

另外使用其中一个有什么好处吗?

0 投票
2 回答
54 浏览

clojurescript - 如何通过 ClojureScript 将 Ratom 从浏览器传输到 REPL?

我刚刚开始在 ClojureScript 中开发应用程序,并且正在使用 Figwheel 和 Reagent 和 LightTable。一切似乎都是超级互动的,我真的很喜欢 REPL 和代码重新加载的想法,但我不知道如何将 Ratom 从浏览器传输到 REPL。例如,如果我正在开发 tictactoe,如果我能够将当前的板子状态转移到 REPL 只是为了在那里玩它(检查一些功能行为等),那就太棒了。可能吗?

例如,ratom 在tictactoe.core命名空间中定义如下:

在浏览器控制台中有关 Ratom 的信息如下所示:

当我试图获取有关终端中 REPL 中的原子位于tictactoe.core命名空间中的信息时:

我做错了什么?在同一个 REPL 中,我得到println的结果与浏览器中的相同。

我应该怎么做才能在 REPL 中获得随机数的价值?

0 投票
1 回答
345 浏览

emacs - 在 Emacs 中的 Cider 中,有没有办法重新启动 Figwheel 以检测新的依赖项?

我向我的 Clojurescript 应用程序添加了一个新的依赖项,我想知道我是否可以运行一个函数,比如(restart-figwheel)重新启动 Figwheel。我读到您必须重新启动 Figwheel 才能检测新的依赖项。

0 投票
1 回答
112 浏览

clojurescript - :libs - c:\...\Blocks-Editor\app\js\dependencies\google-blockly\core\blocks.js 不是相对路径

抱歉,这一定是非常愚蠢的事情,但我不知道是什么。

在 REPL 中,(start-figwheel!)输出:

我正在使用Google Blockly Library,它使用 GCL

怎么了?

这是项目文件树:

谷歌阻止:

项目.clj

0 投票
1 回答
297 浏览

clojurescript - 如何在“figwheel”开发服务器中进行代理?

grunt//webpackexpress,我可以将其他域/主机名中的一些 API 代理到提供 html 页面的当前服务器并解决 CORS 问题。

我找到了启动http服务器的figwheel用途ring,然后我想我可以使用https://github.com/tailrecursion/ring-proxyfigwheel服务器添加代理路径。但我不知道如何在figwheel项目之外做到这一点。

谢谢!