运行 使用 ScalaJS Bundler 进行测试时遇到 ReferenceError
Facing ReferenceError while running tests with ScalaJS Bundler
我在从 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
但是,当我删除 requireJsDomEnv in Test := true
设置时,测试套件 运行 没问题。我需要了解为什么会这样?我该如何解决?
我正在使用:
scala -> 2.13.3
Java -> OpenJDK 14.0.2
从代码来看,您似乎正在将 node-js env 与 JSDom 一起使用。
因此,要启用构建,您必须使用 JSDOMNodeJSEnv(),例如:-
requireJsDomEnv in Test := true
jsEnv in Test := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv()
这里是文档以获取更多信息:- https://www.scala-js.org/doc/project/js-environments.html
我在从 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
但是,当我删除 requireJsDomEnv in Test := true
设置时,测试套件 运行 没问题。我需要了解为什么会这样?我该如何解决?
我正在使用:
scala -> 2.13.3
Java -> OpenJDK 14.0.2
从代码来看,您似乎正在将 node-js env 与 JSDom 一起使用。
因此,要启用构建,您必须使用 JSDOMNodeJSEnv(),例如:-
requireJsDomEnv in Test := true
jsEnv in Test := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv()
这里是文档以获取更多信息:- https://www.scala-js.org/doc/project/js-environments.html