фиговое колесо - это не задача

Я с удовольствием использовал figwheel весь день. Я завершил процесс, введя :cljs/quit.

Когда я пытаюсь перезапустить figwheel lein figwheel, меня встречает это сообщение от leiningen:

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

Запуск 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 {...}}}
 ...)

Вот что я пробовал до сих пор:

  • Подтверждено, что я был в правильном каталоге
  • Проверены все изменения кода, внесенные с момента последнего успешного запуска фигового колеса.
  • Добавлено [lein-figwheel "0.5.0-6"] к базовому вектору :plugins (это сработало, но не распознал никаких настроек моего профиля)
  • Перезагрузил мой компьютер

person detran    schedule 08.02.2016    source источник
comment
Можете ли вы избавиться от сообщения об ошибке методом проб и ошибок, чтобы точно определить, где figwheel кажется задачей? Кроме того, lein clean всегда является хорошим первым шагом в таких неприятностях. А затем тщательно проверяем все { }, чтобы убедиться, что вещи действительно сгруппированы там, где, по вашему мнению, они должны быть.   -  person Chris Murphy    schedule 09.02.2016
comment
Хорошо, я вычислил непосредственную причину. Я использую плагин lein-environ и создал файл profiles.clj. Когда я удаляю этот файл, lein figwheel работает. Я не совсем понял, почему это так, но, по крайней мере, теперь у меня есть обходной путь.   -  person detran    schedule 15.02.2016


Ответы (1)


Вы можете ввести lein help profiles, чтобы прочитать все о профилях. Проблема в этом случае вызвана:

Помните, что если профиль с одним и тем же именем указан в нескольких местах, выбирается только профиль с наивысшим «приоритетом» — слияние не выполняется. «Приоритет» — от высшего к низшему — profiles.clj, project.clj, пользовательские профили и, наконец, общесистемные профили.

Он использует :dev в profiles.clj, у которого нет фигового колеса. Вот почему добавление lein-figwheel к базовому :plugins помогло, но не использует все ваши настройки.

В документах предложено простое решение:

Если вам нужно включить личные переопределения частей профиля, вы можете использовать составной профиль с общими и личными частями — что-то вроде :dev [:dev-common :dev-overrides]; тогда у вас будет только :dev-overrides {} в project.clj и переопределено в profiles.clj.

person Figgy Pudding    schedule 20.07.2018