gpt4 book ai didi

error-handling - 如何在ClojureScript错误消息中找到我自己的函数?

转载 作者:行者123 更新时间:2023-12-03 07:40:48 24 4
gpt4 key购买 nike

我是ClojureScript的新用户,并且正在使用Re-frame编写应用程序。在大多数情况下,当我收到错误消息(来自ClojureScript)时,会从库中获得以JavaScript代码结尾的调用堆栈。这是预料之中的,但是我没有从堆栈中自己的代码获得函数!有时,我根本没有任何ClojureScript函数调用,只是JavaScript。有没有办法查看这些错误消息中的堆栈顶部?还是要查看堆栈中我的代码/命名空间中的最后一个函数?

那可能对我有很大帮助。即使是很小的错误(例如,在 map 调用中交换运算符(operator)的位置)也很难跟踪。我应该做错了。

最佳答案

据说ClojureScript错误消息是一种获得的味道。由于编译器的工作方式,错误消息可能是晦涩的。

安装cljs-devtools或fork Dirac可以帮助提高ClojureScript错误消息的可读性。其中包括:

  • :hints 功能。

    The :hints feature is an attempt to augment uncaught exceptions and error object to include a bit of additional knowledge related to such errors. It tries to fetch the original source file, extract relevant part to show you more context and mark the javascript error there. This is expected to work only with :optimizations none compiler mode and it is disabled by default because it relies on monkey patching.

  • 更好地显示ClojureScript function names

    更好的堆栈跟踪示例(来自Dirac,但cljs-webtools已经对其进行了很多改进)


  • 安装
  • 启用自定义格式化程序
  • 使用CMD-ALT-J打开devTools
  • 使用F1或按三个点进入设置
  • 在控制台
  • 下选中“启用自定义格式器”

    cljs-webtools

    (请参阅 Installation):
  • 使用project.clj向编译器添加配置
    {:builds
    [{:id "dev"
    :source-paths ["src/cljs"]
    :figwheel {:on-jsload "blabla.core/reload"}
    :compiler {(...)
    :preloads [devtools.preload]
    :external-config {:devtools/config {:features-to-install :all}}}}

  • 狄拉克
  • 安装Dirac Chrome extension
  • 在启用了远程调试的情况下运行Chrome。
    /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary \
    --remote-debugging-port=9222 \
    --no-first-run \
    --user-data-dir=$A_PATH_TO_YOUR_USER_PROFILE_DIRECTORY
  • binaryage/dirac添加到project.clj中的依赖项
    :dependencies [[binaryage/dirac "RELEASE"]]

    (或使用installation instructions中的另一个)。

  • 如果使用 re-frame Leiningen template,默认情况下会包含 cljs-devtools

    关于error-handling - 如何在ClojureScript错误消息中找到我自己的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46518268/

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