无法使用 PhantomJS runner 调用 require('fs')

Cannot call require('fs') with PhantomJS runner

我一直在尝试在 PhantomJS 中使用 FS API,但是当我 运行 以下代码

时,出现了一个我无法理解的错误
private[scalajssupport] object PhantomFile {
  val fs: PhantomFS = js.Dynamic.global.require("fs").asInstanceOf[PhantomFS]
}

我得到的错误是:

 TypeError: undefined is not a constructor (evaluating '$g["require"]("fs")')

然而,当我运行

var fs = global["require"]("fs")

直接在 PhantomJS REPL 中,它工作正常。

原来在使用PhantomJS对运行scala.js代码时,是运行在一个沙箱里,里面有"webpage"模块,没有权限访问要求。

写入文件系统的唯一方法是在 onCallback, as seen in the answer to this Whosebug question 中定义回调。