首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ScalaJSBundlerPlugin时无法从Javascript访问JSExport (webpack绑定程序)

使用ScalaJSBundlerPlugin时无法从Javascript访问JSExport (webpack绑定程序)
EN

Stack Overflow用户
提问于 2020-10-12 19:34:34
回答 1查看 48关注 0票数 0

我正在尝试下面的hello world示例,其中的scalajs导出找到了here

代码语言:javascript
复制
@JSExportTopLevel("HelloWorld")
object HelloWorld {
  @JSExport
  def sayHello(): Unit = {
    println("Hello world!")
  }
}

我的html看起来像这样:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <title>Example Scala.js application</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body style="margin: 0px">

<script type="text/javascript" src="./../../../target/scala-2.13/scala-js-tutorial-fastopt.js"></script>
<script>
    HelloWorld.sayHello();
</script>
</body>
</html>

它工作得很好。

现在,如果我尝试使用“./../target/scala-2.13/scalajs-bundler/main/scala-js-tutorial-fastopt-bundle.js”,(它在幕后使用了webpack ),运行fastOptJS::webpack并将路径更改为ScalaJSBundlerPlugin,我会得到"HelloWorld is not defined“。

捆绑后如何访问HelloWorld?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-12 19:52:58

默认情况下,scalajs-bundler使用"Application“绑定模式,该模式可以丢弃顶级导出。作为the cookbook explains,当使用@JSExportTopLevel时,您需要使用"LibraryAndApplication“绑定模式,使用

代码语言:javascript
复制
webpackBundlingMode := BundlingMode.LibraryAndApplication()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64317090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档