使用ScalaJS Bundler运行测试时遇到ReferenceError
从使用ScalaJS Bundler运行测试时遇到ReferenceError,scala,scala.js,scalajs-bundler,Scala,Scala.js,Scalajs Bundler,从sbt scalajs0.6.x升级到1.2.0时,我遇到了这个问题,问题是:- 通过sbt scalajs v0.6.26(和sbt scalajs bundler v0.14.0),我启用了对测试的jsdom支持: requireJsDomEnv in Test := true 测试套件运行良好 但是通过sbt-scalajs v1.2.0(和sbt-scalajs bundler v0.18.0),我也启用了对测试的jsdom支持: requireJsDomEnv in Test :=
sbt scalajs
0.6.x升级到1.2.0时,我遇到了这个问题,问题是:-
通过sbt scalajs v0.6.26
(和sbt scalajs bundler v0.14.0
),我启用了对测试的jsdom
支持:
requireJsDomEnv in Test := true
测试套件运行良好
但是通过sbt-scalajs v1.2.0
(和sbt-scalajs bundler v0.18.0
),我也启用了对测试的jsdom
支持:
requireJsDomEnv in Test := true
但这给了我以下错误:
[info] Writing and bundling the test loader
webpack:///./node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js?:21
exports._globalThis = typeof globalThis === 'object' ? globalThis : window;
^
ReferenceError: window is not defined
at eval (webpack:///./node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js?:21:69)
at Object../node_modules/@opentelemetry/api/build/src/platform/browser/globalThis.js
但是,当我删除Test:=true中的requireJsDomEnv设置时,测试套件运行良好。我需要了解为什么会发生这种情况?我怎样才能修好它
我正在使用:
scala -> 2.13.3
Java -> OpenJDK 14.0.2
从代码上看,您似乎正在将节点js env与JSDom一起使用
因此,要启用构建,您必须使用JSDOMNodeJSEnv()例如:-
requireJsDomEnv in Test := true
jsEnv in Test := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv()
这里是文档,了解更多信息:-您是否可以一次升级一件东西,而不是在sbt scalajs和sbt scalajs bundler中进行相对较大的升级,以隔离问题?从(0.6.26,0.14.0)开始,我建议以下升级路径:(0.6.26,0.14.0)->(0.6.33,0.14.0)->(0.6.33,0.18.0)->(1.2.0,0.18.0),在每个独立升级之间运行测试。