如何解决node.js 抛出“Buffer.alloc 不是函数”错误
我正在将我的 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 可能是一个错字,所以尝试了当前版本。结果一样。我不知道我以前的 node 版本是什么。
关于如何进行的任何建议? 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,这个特殊问题就消失了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。