node.js 抛出 "Buffer.alloc is not a function" 错误
node.js throwing "Buffer.alloc is not a function" error
我正在努力将我的 ScalaJS 0.6.33 项目转换为 1.x。我按照文档中的指示从过渡到 1.0.0 开始。但是我得到一些错误,我的一些依赖项是用 ScalaJS 1.3 编译的,所以我现在试图跳转到 1.4.0。
我的直接问题是 运行 对我的 ScalaJS 代码的测试抛出了一个错误,该错误源自 node.js:
sbt:xplatform> test
comSetup.js:7
var inBuffer = Buffer.alloc(0);
^
TypeError: Buffer.alloc is not a function
at comSetup.js:7:25
at comSetup.js:61:4
at Object.exports.runInThisContext (vm.js:54:17)
at [stdin]:8:27
at Object.exports.runInThisContext (vm.js:54:17)
at Object.<anonymous> ([stdin]-wrapper:6:22)
at Module._compile (module.js:425:26)
at node.js:587:27
at doNTCallback0 (node.js:428:9)
at process._tickCallback (node.js:357:13)
这是在将我的节点安装更新到 15.7.0 之后。我注意到 http://www.scala-js.org/doc/project/js-environments.html 表示 nvm install 5.0
。我首先尝试了(结果相同)。我认为 5.0 可能是一个错字,所以尝试了当前版本。同样的结果。我不知道我以前的节点版本是什么。
关于如何进行的任何建议?从 plugins.sbt 中选择的可能相关的行(不在上下文中!):
addSbtPlugin("com.vmunier" % "sbt-web-scalajs" % "1.1.0")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.4.0")
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.0.0")
addSbtPlugin("org.scala-js" % "sbt-jsdependencies" % "1.0.0")
libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.1.0"
我认为是build.sbt的相关部分:
lazy val commonSettings = Seq(
scalaVersion := "2.12.13",
...
)
lazy val xplatform = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Full)
.in(file("_xplatform"))
.settings(commonSettings)
lazy val xplatformJVM = xplatform.jvm
lazy val xplatformJS = xplatform.js
lazy val browser = (project
.in(file("_browser")))
.settings(commonSettings)
.settings(
scalaJSUseMainModuleInitializer := true,
jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv(),
libraryDependencies ++= Seq(
"org.scala-js" %%% "scalajs-dom" % "1.1.0"
)
)
.enablePlugins(ScalaJSPlugin, ScalaJSWeb, JSDependenciesPlugin)
.dependsOn(xplatformJS % "test->test;compile->compile")
@sjrd 是正确的,它是旧版本的节点。
我运行成一道题。在尝试解决该问题的过程中,我阅读了 JavaScript Environments,它说安装 nvm
然后
nvm install 5.0
我没有做足够的研究就做了这个。首先,v5.0 看起来很旧。我想知道这是否不应该是 nvm install 15.0
(在撰写本文时当前为 15.7)。
我后来安装了 v15,但不知何故 v5.0 成为了新终端会话的默认设置。
一旦我摆脱了 v5.0,这个特殊问题就消失了。
我正在努力将我的 ScalaJS 0.6.33 项目转换为 1.x。我按照文档中的指示从过渡到 1.0.0 开始。但是我得到一些错误,我的一些依赖项是用 ScalaJS 1.3 编译的,所以我现在试图跳转到 1.4.0。
我的直接问题是 运行 对我的 ScalaJS 代码的测试抛出了一个错误,该错误源自 node.js:
sbt:xplatform> test
comSetup.js:7
var inBuffer = Buffer.alloc(0);
^
TypeError: Buffer.alloc is not a function
at comSetup.js:7:25
at comSetup.js:61:4
at Object.exports.runInThisContext (vm.js:54:17)
at [stdin]:8:27
at Object.exports.runInThisContext (vm.js:54:17)
at Object.<anonymous> ([stdin]-wrapper:6:22)
at Module._compile (module.js:425:26)
at node.js:587:27
at doNTCallback0 (node.js:428:9)
at process._tickCallback (node.js:357:13)
这是在将我的节点安装更新到 15.7.0 之后。我注意到 http://www.scala-js.org/doc/project/js-environments.html 表示 nvm install 5.0
。我首先尝试了(结果相同)。我认为 5.0 可能是一个错字,所以尝试了当前版本。同样的结果。我不知道我以前的节点版本是什么。
关于如何进行的任何建议?从 plugins.sbt 中选择的可能相关的行(不在上下文中!):
addSbtPlugin("com.vmunier" % "sbt-web-scalajs" % "1.1.0")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.4.0")
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.0.0")
addSbtPlugin("org.scala-js" % "sbt-jsdependencies" % "1.0.0")
libraryDependencies += "org.scala-js" %% "scalajs-env-jsdom-nodejs" % "1.1.0"
我认为是build.sbt的相关部分:
lazy val commonSettings = Seq(
scalaVersion := "2.12.13",
...
)
lazy val xplatform = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Full)
.in(file("_xplatform"))
.settings(commonSettings)
lazy val xplatformJVM = xplatform.jvm
lazy val xplatformJS = xplatform.js
lazy val browser = (project
.in(file("_browser")))
.settings(commonSettings)
.settings(
scalaJSUseMainModuleInitializer := true,
jsEnv := new org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv(),
libraryDependencies ++= Seq(
"org.scala-js" %%% "scalajs-dom" % "1.1.0"
)
)
.enablePlugins(ScalaJSPlugin, ScalaJSWeb, JSDependenciesPlugin)
.dependsOn(xplatformJS % "test->test;compile->compile")
@sjrd 是正确的,它是旧版本的节点。
我运行成一道题。在尝试解决该问题的过程中,我阅读了 JavaScript Environments,它说安装 nvm
然后
nvm install 5.0
我没有做足够的研究就做了这个。首先,v5.0 看起来很旧。我想知道这是否不应该是 nvm install 15.0
(在撰写本文时当前为 15.7)。
我后来安装了 v15,但不知何故 v5.0 成为了新终端会话的默认设置。
一旦我摆脱了 v5.0,这个特殊问题就消失了。