首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试pedestal.io应用程序的正确方法是什么?

调试pedestal.io应用程序的正确方法是什么?
EN

Stack Overflow用户
提问于 2013-06-21 15:00:37
回答 2查看 542关注 0票数 4

我目前正在尝试重新实现todo example app,以了解它是如何工作的,但在加载页面时遇到错误。我不知道从这里怎么走。让我担心的是错误似乎出现在cljs.core中。

代码语言:javascript
复制
todo-app.simulated.services.receive_messages = (function receive_messages(app){
  return io.pedestal.app.protocols.put_message.call(null,(new cljs.core.Keyword("\uFDD0:input")).call(null,app),cljs.core.PersistentArrayMap.fromArray([io.pedestal.app.messages.type,"\uFDD0:create-todo",io.pedestal.app.messages.topic,cljs.core.PersistentVector.fromArray(["\uFDD0:todo"], true)], true));
});

异常消息为:

代码语言:javascript
复制
Uncaught TypeError: Object function (meta,cnt,arr,__hash){
this.meta = meta;
this.cnt = cnt;
this.arr = arr;
this.__hash = __hash;
this.cljs$lang$protocol_mask$partition1$ = 4;
this.cljs$lang$protocol_mask$partition0$ = 16123663;
} has no method 'fromArray'

我的依赖项是:

代码语言:javascript
复制
[[org.clojure/clojure "1.5.1"]
 [org.clojure/clojurescript "0.0-1820"]
 [domina "1.0.1"]
 [ch.qos.logback/logback-classic "1.0.7" :exclusions [org.slf4j/slf4j-api]]
 [io.pedestal/pedestal.app "0.1.9"]
 [io.pedestal/pedestal.app-tools "0.1.9"]]

任何帮助或见解都将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2013-07-17 03:01:25

我也看到了这个错误,它似乎是从哪里冒出来的。清除out/目录(project.clj中的:target-path)为我解决了这个问题。基于此,我认为cljs编译过程和/或基座之间存在一些脱节。

This issue看起来很相似,修复方法也很相似,所以我认为这是一个cljs构建问题。

一般来说,我没有太多关于基座调试的东西可以提供,但是如果我在核心库中看到一个错误,我会从我这一端出了问题的假设开始。:)

编辑

更多信息,建议您在每次升级ClojureScript或out\时删除ClojureScript目录。

票数 1
EN

Stack Overflow用户

发布于 2013-08-22 21:08:31

按照bostonou的建议,最好的方法是删除out目录。我目前的方法是使用lein-cljsbuild,我个人是通过将它添加到我的用户配置文件中来实现的。

您可以通过调用nano ~/.lein/profiles.clj来执行此操作

我的现在看起来像这样:

代码语言:javascript
复制
{:user {:plugins [[lein-difftest "2.0.0"]
                  [lein-marginalia "0.7.1"]
                  [lein-pprint "1.1.1"]
                  [lein-swank "1.4.4"]
                  [lein-catnip "0.5.1"]
                  [environ/environ.lein "0.3.0"]
                  [lein-cljsbuild "0.3.2"]]
        :hooks [environ.leiningen.hooks]}}

您现在可以通过在项目文件夹中调用lein-cljsbuild once来自动构建cljs文件。调用lein-cljsbuild auto可以确保在编辑源文件时自动编译它们。

我现在还将:hooks [leiningen.cljsbuild]添加到我的project.clj中,这样调用lein clean也会删除lein-cljsbuild构建的文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17229437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档