6

clojurescript 的新手,并在此处完成“现代 CLJS”教程。

它指示通过将其添加到以下内容来拉入多米纳project.clj

:dependencies [[org.clojure/clojure "1.4.0"]
               [compojure "1.1.5"]
               [domina "1.0.0"]]

ns然后通过在表单中​​引用它在你的脚本中使用它

(ns cljstut.login
  (:use [domina :only [by-id value]]))

但是,当我实际在浏览器中运行它时,我会在控制台日志中看到以下内容。

goog.require could not find: domina

好像我在某处遗漏了一些声明?但作为新手,整个构建过程相当不透明。非常感谢任何故障排除提示。

4

6 回答 6

3

此外,请确保您已保存project.clj文件并尝试运行lein cleanlein cljsbuild clean.

于 2014-03-28T12:49:02.793 回答
3

您的文件和命名空间声明中的依赖project.clj项看起来不错。

如果您正在使用 构建您的 clojurescript 代码lein cljsbuild auto,则需要重新启动该过程。我相信它应该在重新启动后自动引入新的依赖项。

如果这不起作用,或者您没有使用lein cljsbuild auto,请尝试lein deps在项目文件夹中手动运行该命令 - 它将从远程存储库中获取所有缺少的依赖项。

于 2013-02-25T04:50:27.887 回答
1

我正在将modern-cljs 更新为使用的libs 和lein 插件的最新版本。目前,我将该系列更新到该系列的第 7 篇教程。您现在应该安全了,将 domina 1.0.2-SNAPSHOT 更新到 project.cljs :dependencies 并将 lein-cljsbuild 0.3.0 更新到 project.cljs :plugins。

咪咪

于 2013-03-03T16:15:03.687 回答
1

只想添加命名空间中的拼写错误会触发相同的错误消息:

goog.require 找不到:domina

示例(注意modern-cljs 中缺少的“j”):

(ns modern-cls.login
  (:use [domina :only [by-id value]]))

为了勇敢,我使用了不同的项目名称,因此使用了不同的命名空间。当我从指南中复制粘贴时,它咬了我的屁股,这个错误让我困惑了一段时间:)

于 2013-09-10T20:00:55.400 回答
0

我在学习“现代 CLJS”教程时遇到了同样的问题。我的问题是无意中将“domina”依赖项添加到 project.clj 的 :plugins 部分而不是 :dependencies 部分。

于 2015-07-12T19:50:15.670 回答
0

我通过在 index.html 文件中以正确的顺序放置行来解决此错误消息。

正确的顺序:

<script src="js/expanding_gases.js" type="text/javascript"></script>
<script type="text/javascript">goog.require("expanding_gases.flow_gases");</script>

错误的顺序:

<script type="text/javascript">goog.require("expanding_gases.flow_gases");</script>
<script src="js/expanding_gases.js" type="text/javascript"></script>

顺便说一句,了解“goog”消息的好读物在这里: https ://github.com/clojure/clojurescript/wiki/Quick-Start

于 2015-10-14T21:47:30.223 回答