错误“文档”未定义:eslint / React

IT技术 reactjs jestjs jsx jsdom
2021-05-15 14:13:16

我正在使用 create-react-app 构建一个 React 应用程序。

运行 ESLint 时出现以下错误:
8:3 error 'document' is not defined no-undef.

我的应用程序运行没有错误,但我在 2 个文件中遇到了这个 ESLint 错误。查看这些.jsx文件之一和我的 ESLint 配置。

索引.jsx:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';

ReactDOM.render(
  <App />,
  document.getElementById('root'),
);

eslintrc.js:

module.exports = {
  "extends": "airbnb",
  "plugins": [
      "react",
      "jsx-a11y",
      "import"
  ],
  "env": {
    "jest": true
  }
};

我怎样才能解决这个问题 ?目前我将简单地忽略这两个文件......但我宁愿找到一个长期的解决方案。

4个回答

添加"browser": trueenv以包含全局变量(如文档、窗口等)

有关更多信息,请参阅ESLint 环境文档

在你的 eslint.rc 文件中设置一个 env 属性,例如

{
    "env": {
        "browser": true,
        "node": true
    }
}

在你的 中package.json,指定 jest 的测试环境"jsdom"如下:

  "jest": {
    "testEnvironment": "jsdom"
  }

我遇到了同样的问题,它对我来说效果很好。

如果您有.eslintrc.json文件,则添加以下代码片段。

{
    ...otherSettings,
    "env": {
        "browser": true,
        "node": true
    }
}

如果你没有,.eslintrc.json那么你可以在你的package.json文件中添加这些设置

{
    ...otherSettings,
    "eslintConfig": {
      "globals": {
        "window": true
      }
    }
}