R中webshot包运行抛出“I'm `fs` modules PHANTOM ERROR”错误
问题原因
该报错的核心是PhantomJS运行时加载了第三方fs模块,而非自身内置的fs模块,第三方fs模块没有pathJoin方法,因此触发类型错误。你看到的I'm \fs` modules`就是第三方fs包的输出标识,证实了这个冲突。
解决方法
- 检查你运行R的当前工作目录,是否存在名为
fs.js的文件或者名为fs的文件夹,若存在先将其移动到其他目录,重新运行webshot代码验证。 - 检查是否通过npm全局安装了废弃的
fs第三方包,运行终端命令npm list -g fs,如果有输出安装记录,运行npm uninstall -g fs卸载后重试。 - 若上述操作无效,可在调用webshot前添加自定义参数,规避模块加载冲突:
options(webshot.phantomjs.args = c("--local-to-remote-url-access=yes", "--web-security=no")) # 之后正常运行你的webshot代码 URL <- "http://rstudio.github.io/leaflet/" webshot(URL, delay = 0.5)
- 如果仍无法解决,可直接替换为webshot2包,该包使用Chrome无头模式实现相同功能,无需依赖PhantomJS,完全兼容原有webshot函数语法:
# 第一次使用先安装 install.packages("webshot2") library(webshot2) # 直接调用原有代码即可 webshot(URL, delay = 0.5)
内容的提问来源于stack exchange,提问作者daaronr
相关产品推荐
相关产品推荐

