【问题标题】:'figwheel' is not a task“无花果”不是一项任务
【发布时间】:2016-05-18 17:50:15
【问题描述】:

我整天都在愉快地使用无花果。我通过输入:cljs/quit 终止了该过程。

当我尝试重新启动 figwheel lein figwheel 时,我收到了来自 leiningen 的这条消息:

'figwheel' is not a task. See 'lein help'

Running lein help 列出了许多我可以执行的任务,但 figwheel 不在其中。

这是我的project.clj 的样子(省略了额外的内容):

(defproject myproject
 ...
:dependencies [...]
:plugins [[lein-environ "1.0.2"]
          [lein-cljsbuild "1.1.1"]
          [lein-asset-minifier "0.2.4"]]
...
:profiles {:dev {:dependencies [...
                                [lein-figwheel "0.5.0-6"]
                                ...]
                 :plugins [[lein-figwheel "0.5.0-6"]
                           ...]
                 :figwheel {...}}}
 ...)

这是我迄今为止尝试过的:

  • 已验证我在正确的目录中
  • 检查了自上次成功启动 figwheel 以来所做的所有代码更改
  • [lein-figwheel "0.5.0-6"] 添加到基本:plugins 向量中(这种方法有效,但无法识别我的任何个人资料特定设置)
  • 重新启动我的电脑

【问题讨论】:

  • 您能否通过反复试验消除错误消息,以便您可以查明似乎认为figwheel 是一项任务的位置?当遇到这样的麻烦时,lein clean 总是一个很好的第一步。然后仔细检查所有的 { } - 以确保事情真正分组到你认为应该的位置。
  • 好的,我已经找到了近因。我使用lein-environ 插件,并创建了一个profiles.clj 文件。当我删除该文件时,lein figwheel 有效。我还没有完全弄清楚为什么会这样,但至少我现在有一个解决方法。

标签: clojurescript figwheel


【解决方案1】:

您可以输入lein help profiles 以阅读有关个人资料的所有信息。本例的问题是由以下原因引起的:

请记住,如果在多个文件中指定了同名的配置文件 位置,仅选择具有最高“优先级”的配置文件 - 否 合并完成。 “优先级”是——从高到低—— profile.clj、project.clj、用户范围的配置文件,最后是系统范围的 个人资料。

它在profiles.clj 中使用:dev,它没有无花果。这也是为什么将 lein-figwheel 添加到基本 :plugins 有点帮助,但不会使用您的所有设置。

文档建议了一个简单的解决方案:

如果您需要对配置文件的某些部分启用个人覆盖,您可以使用具有通用部分和个人部分的复合配置文件 - 例如:dev [:dev-common :dev-overrides];然后你会在 project.clj 中只有 :dev-overrides {} 并在profiles.clj 中覆盖它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    相关资源
    最近更新 更多