Linter 错误 - 未定义仅限浏览器的函数

Linter error - Browser-only function is not defined

我依赖浏览器中可用的 class,FileReader

我在 webpack 中不断收到错误 - 'FileReader' is not defined no-undef

正确的处理方法是什么?我目前正在使用一种忽略消息的方法。

问题在于,由于 webpack 找不到它作为 Node.js 的一部分,并且由于它不可用,因此会导致错误。但是有几种方法可以解决这个问题。

而不是

var reader = new FileReader();

使用

修复#1

var reader = new window.FileReader();

修复#2

var reader = new global.FileReader();

webpack 默认情况下会将全局转换为 window。 更多信息:https://webpack.js.org/configuration/node/

修复#3

// in webpack.config.js
module.exports = {
  //...
  externals: {
    FileReader: 'FileReader'
  }
};

更多信息:https://webpack.js.org/configuration/externals/