在另一个问题 ,我建议使用ScalaJS打捆导入NPM的依赖。
我想在一个简单的只有客户端的Web应用程序使用一些JavaScript NPM包。 有称为静态的例子 ,显示这一点。 我改变的例子:
添加到build.sbt:
npmDependencies in Compile += "esprima" -> "3.1.3"
添加到Main.scala:
import Esprima._
import JsonToString._
val code = "answer = 42"
val tokens = tokenize(code)
val tokensStr = tokens.json
变化Main.scala
: "This is bold"
到s"This is bold $tokensStr"
门面(有点简单化,全版本看到的GitHub ):
import scala.scalajs.js
import scala.scalajs.js.annotation.JSName
@JSName("esprima")
@js.native
object Esprima extends js.Object {
def tokenize(input: String, config: js.Any = js.native, delegate: String => String = js.native): js.Array[js.Any] = js.native
def parse(input: String, config: js.Any = js.native): js.Dynamic = js.native
}
当运行生成的HTML fastOptJS::webpack
错误的是:
遗漏的类型错误:无法读取的未定义的属性“记号化”
检查static-fastopt-bundle.js
显示esprima
被使用,但它的JS是不是捆绑在一起。
哪些其他措施都需要依赖加入到一个只有客户端的网页?