1

sbt-scalajs 从0.6.x升级到1.2.0时我遇到了这个问题,问题是:-

使用sbt-scalajs v0.6.26(and sbt-scalajs-bundler v0.14.0),我启用了jsdom对测试的支持:

requireJsDomEnv in Test := true

测试套件运行良好。

但是使用sbt-scalajs v1.2.0(and 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
4

1 回答 1

1

从代码来看,您似乎正在将 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

于 2020-10-29T09:22:50.340 回答