如何将Scala.js应用程序转换为CommonJS模块?

AIr*_*ing 6 commonjs scala.js

是否有任何标准方法可以将Scala.js应用程序用作CommonJS环境中的libriary?如果没有,我可以为此目的修补生成的js文件吗?

gzm*_*zm0 11

Scala.js 0.6.13及以后

把它放在你的构建文件中:

scalaJSModuleKind := ModuleKind.CommonJSModule
Run Code Online (Sandbox Code Playgroud)

Scala.js 0.6.5至0.6.12

把它放在你的构建文件中(解释见下文):

scalaJSOutputWrapper := ("var __ScalaJSEnv = { exportsNamespace: exports };", "")
Run Code Online (Sandbox Code Playgroud)

Scala.js 0.5.4至0.6.4

你可以告诉Scala.js在哪里发送它导出的东西.要创建一个CommonJS模块,只需添加以下内容:

var __ScalaJSEnv = {
   exportsNamespace: exports
};
Run Code Online (Sandbox Code Playgroud)

到/ .js生成的文件.fastOptJSfullOptJS

Pre Scala.js 0.5.4

请升级:)

  • 从Scala.js 0.6.5开始,这可以通过一行sbt配置自动执行:`scalaJSOutputWrapper:=("var __ScalaJSEnv = {exportsNamespace:exports};","")`.它将包含在`-fastopt.js`和`-opt.js`文件中. (2认同)
  • 更新了答案 (2认同)