Error: fs.readFileSync is not a function

Error: fs.readFileSync is not a function

我正在尝试通过我正在制作的 Chrome 应用程序将十六进制文件闪存到 Arduino。我使用了下面的基本 NodeJS 代码,并使用 browserify 对其进行了转换,以便它可以在浏览器中运行。它不起作用,我在控制台中收到一条错误消息 'TypeError: fs.readFileSync is not a function'

var Avrgirl = require('avrgirl-arduino');

var avrgirl = new Avrgirl({
  board: 'uno'
});

avrgirl.flash('Blink.cpp.hex', function (error) {
  if (error) {
    console.error(error);
  } else {
    console.info('done.');
  }
});

您不能在浏览器中 运行 这种类型的代码(即使使用 browserify)。您应该 运行 在 node.js.

中使用它

我猜你的错误来自于:

avrgirl.flash('Blink.cpp.hex', ...)

因为您传递的是文件名并且该函数可能正在尝试读取该文件。

browserify 不能神奇地赋予浏览器一些它原本不会拥有的能力,例如从硬盘驱动器读取文件或与 arduino 硬件通信。此代码可能意味着 运行 在 node.js 环境中。

avrgirl-arduino 模块的 instructions,非常清楚地说明您应该 运行ning 在 node.js。

我知道这已经很老了但是:Noopkat 制作了一个 avrgirl 演示,它使用 webserial 从浏览器刷入 board!看看这个。 https://github.com/noopkat/avrgirl-arduino/tree/master/tests/demos/webserial