#clojurescript #figwheel
Вопрос:
Я сделал что-то с моим проектом clojurescript, который выдает эту ошибку, я использую figwheel-main с deps.edn, не совсем уверен, что искать, чтобы решить эту проблему, похоже, что сам clojurescript не найден при запуске в браузере
Uncaught TypeError: clojure is undefined
option_values_fmt http://localhost:9500/cljs-out/main.js:3842
cljs$core$IReduce$_reduce$arity$3 http://localhost:9500/cljs-out/main.js:2534
cljs$core$IFn$_invoke$arity$3 http://localhost:9500/cljs-out/main.js:1626
reduce http://localhost:9500/cljs-out/main.js:1623
option_values_fmt http://localhost:9500/cljs-out/main.js:3842
<anonymous> http://localhost:9500/cljs-out/main.js:3850
мой файл figwheel выглядит так, одно из изменений, которые я внес, состоит в том, чтобы ввести множество требований в :дополнительные депы вместо под :депы clojurescript и clojure по-прежнему включены в корень.
{:output-to "resources/public/cljs-out/main.js"
:optimizations :none
;:pseudo-names true
:pretty-print true
:source-map true
:source-map-timestamp true
:devcards true
:main webpage.core}
Что я должен искать, что может вызвать эту ошибку ?
Ответ №1:
Скорее всего, это проблема где-то в вашем коде, а не в ваших зависимостях.
Это, например, может произойти, если вы используете полную ссылку (например (clojure.string/anything ...)
), не потребовав предварительно соответствующего пространства имен (т. Е. (:require [clojure.string ...])
в вашей ns
форме). Требование гарантирует, что код действительно загружен и доступен до выполнения вашего кода.
Комментарии:
1. Вот и избавился от этой ошибки, здорово, интересно, почему это сработало раньше, это оставило меня с неперехваченной ошибкой ссылки: goog не определен, но я могу еще немного покопаться в этом.
2. Возможно, вы полагались на другое пространство имен, которое также ссылалось на загрузку пространства имен до проблемного. Пока пространство имен загружено заранее, все в порядке. Требование гарантирует, что вещи всегда загружаются в правильном порядке. отсутствие определения goog обычно означает, что goog/base.js файлы не были загружены должным образом. При использовании
:main
это не должно быть проблемой, хотя, поскольку сгенерированныйmain.js
должен это делать. Может возникнуть:asset-path
проблема.3. немного раздражает, что он может компилироваться, когда возникает проблема с требованиями, google не определен, я решил, изменив оптимизацию с » нет » на «простой», это проблемы, с которыми я столкнулся при попытке развертывания в основном, спасибо за помощь
4. @Оли, это кажется неправильным. Вы уверены, что с вашей стороны не пропущено никаких требований/импорта для вещей goog? Например, a
git grep goog
должен дать вам некоторые сведения об этом в вашей кодовой базе.5. этот поиск приносит только до константы.он:(внимание-определяем делать-приложение-АПИ » 127.0.0.1:3000″ ), я принял его, потому что оптимизацию не создает много файлов и пытается импортировать их, используя хорошие библиотеки, некоторые объединить все их в один так что я предполагаю, что это что-то связано с его другой пример, где ошибка не то, что полезно