【问题标题】:From Cider, in Emacs, is there a way to restart Figwheel to detect new dependencies?在 Emacs 中的 Cider 中,有没有办法重新启动 Figwheel 以检测新的依赖项?
【发布时间】:2017-03-17 05:03:50
【问题描述】:

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

【问题讨论】:

    标签: emacs clojurescript leiningen figwheel cljsbuild


    【解决方案1】:

    目前,我认为您无法做到这一点。您需要退出当前的 figwheel 会话并重新启动,以获取添加到 project.clj 文件中的 :dependencies 的新依赖项。事实上,figwheel 文档还建议在重新启动 figwheel 之前运行 lein clean 以确保您不会得到一些旧代码。

    我认为此功能已在路线图中,但不是高优先级。让这个功能可靠地工作是相当复杂的——特别是如果你增加了不同 repl 环境的复杂性(例如使用背驮式,以及带有无花果的苹果酒)。

    请注意,此限制仅适用于 project.clj 中的 :dependency 项。您可以在 cljs 文件中动态添加 :require 行并让它们被拾取(当然假设库已经在依赖项列表中)。

    我怀疑compicaiton的一部分是确保更新类路径,并且以某种方式更新所有正在运行的使用类路径的进程,并确保重新加载所有加载的类,以防依赖项更改那些加载的类的依赖项以保留东西持续的。

    【讨论】:

    • 我明白了。我想在我使用 clj-refactor 添加依赖项后,我会编写一个 elisp 函数来自动为我完成。
    • 您可以编写一个 elisp 函数来退出苹果酒连接,然后重新启动它们,但由于这已经只需要几个键击,它不会给您带来太多好处。杀手是加载时间,而 elisp 函数对此无济于事。 90% 的时间,您只需要在添加新库时重新加载 project.clj,这通常发生在开始时,以后很少发生,除非您添加全新的功能。当你重构(ns ..)时你不会想使用它,因为 figwheel 会处理它。
    猜你喜欢
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 2015-02-03
    • 2011-02-26
    • 1970-01-01
    • 2023-04-04
    • 2019-09-03
    • 1970-01-01
    相关资源
    最近更新 更多