gpt4 book ai didi

java - 为什么 Figwheel 不将编译后的应用程序传递到浏览器?

转载 作者:行者123 更新时间:2023-12-01 22:06:23 24 4
gpt4 key购买 nike

我使用的是 Leiningen 2.5.2(Java 1.8.0_45-internal Open JDK 64 位)和试剂模板(即 lein newreagent foo)。

这与预期的 lein Figwheel 运行良好。

接下来,我要做的第一件事是将“Views”函数分解为单独的文件,并将它们添加到应用程序命名空间中:

core.cljs 片段:

;; -------------------------
;; Views

(:require home-page)

home-page.cljs(整个文件):

(ns foo.core)

(defn home-page []
[:div [:h2 "Welcome to foo"]
[:div [:a {:href "#/about"} "go to about page"]]])

当我在浏览器(chromium 或 firefox)中查看应用程序时,它卡在“ClojureScript 尚未编译!”处。尽管看起来在终端中编译成功。如果我在 Figwheel REPL 中输入命令,当它在浏览器中工作时,我会看到绿色的 Clojure Logo ,因此我知道它已连接。

几个月前我在一个试剂应用程序中运行了这个 - 发生了什么?我应该如何分离我的 View 代码? (单个文件是难以管理的;这会带来很多问题。)

最佳答案

如果 core.cljs 中确实只有 (:require home-page) 行,那么这应该是罪魁祸首。冒号表示法 :require 仅在使用 ns 的命名空间声明内有效。此外,您在错误的文件中声明了核心命名空间(home-page.cljs,而不是 core.cljs)。看看this article on namespaces in Clojure以获得详尽的解释。

您将需要在 core.cljs 中包含以下内容:

(ns foo.core
(:require [foo.home-page :as hp :refer [home-page]]))
.... more core.cljs code ...

然后简单地在 home-page.cljs 中:

(ns foo.home-page
(:require ....reagent namespaces as needed ....

(defn home-page [] ....

关于java - 为什么 Figwheel 不将编译后的应用程序传递到浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32705441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com