繁体   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