[英]$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.