簡體   English   中英

$jscomp 未在為 clojurescript 和試劑加載的代碼中定義

[英]$jscomp not defined in code loaded for clojurescript and reagent

使用 clojurescript 1.10.758 和試劑 1.0.0,我遇到了一個錯誤,其中文件 index.js 嘗試引用$jscomp ,該文件未定義。

我已經看到許多與 $jscomp 相關的 Stackoverflow 和 Github 問題在 shadow-cljs 的上下文中未定義,但我沒有使用它。

當我使用帶有 figwheel 的開發模式構建(使用帶有 cljsbuild 和 figwheel 插件的 Leiningen)時會出現此問題,並且如果我將 cljsbuild 用於一次性開發構建也會出現此問題。 奇怪的是,如果我使用 webpack 創建捆綁包,則不會出現問題。

在我嘗試使 webpack 工作之前,我確實有沒有 webpack 的工作代碼。 我更改的某些內容似乎影響了非捆綁構建。 我能做的唯一改變是使用 npm 安裝 react 和 react-dom,並從 Leiningen 依賴項中的試劑中排除這些包。 但是撤消排除並沒有使非捆綁代碼再次工作。

關於如何在第一次需要時定義$jscomp的任何建議?

$jscomp與 Closure Compiler 及其創建的 Polyfill 相關。

調整:language-out:es6編譯器選項可能就足夠了,這有點類似於shadow-cljs使用的:output-feature-set選項。 調試此問題的最佳方法是找到正在填充的實際代碼及其原因。 不過可能需要挖掘一些已編譯的 JS。

shadow-cljs比常規 CLJS 或 figwheel 更廣泛地使用閉包編譯器,但他們也使用它。 適用於shadow-cljs的解決方案也幾乎適用於其他工具。 只是設置可能會有所不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM