【问题标题】:error 'document' is not defined : eslint / React错误“文档”未定义:eslint / React
【发布时间】:2017-07-11 15:35:02
【问题描述】:

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

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

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

index.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
  }
};

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

【问题讨论】:

    标签: reactjs jestjs jsx jsdom


    【解决方案1】:

    如果您有.eslintrc.json 文件,则添加以下代码 sn-p。

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

    如果您没有.eslintrc.json,那么您可以将这些设置添加到您的package.json 文件中。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 虽然@Locus 的回答还可以,但这是一个更好的解决方案,因为它不依赖于链接(当天可能会损坏),并且它描述了解决问题的步骤
      【解决方案3】:

      在您的package.json 中,将 jest 的测试环境指定为"jsdom",如下所示:

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

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

      【讨论】:

      • 不知道为什么这不是谷歌上的最佳结果。这绝对是解决方案。我没有意识到 facebook react 测试脚本用它的 -env=jsdom 命令行参数做了什么
      【解决方案4】:

      "browser": true 添加到您的env 以包含全局变量(如文档、窗口等)

      请参阅ESLint environment documentation 了解更多信息。

      【讨论】:

      • 不清楚要做什么,在哪里添加这个,什么文件?
      • @zishe 参见 OP,在 eslintrc.js 中有一个“env”属性。查看 ESLint 文档了解如何配置它eslint.org/docs/user-guide/configuring
      • 我应该删除node: true 吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2019-06-12
      • 2016-09-04
      • 1970-01-01
      • 2022-10-17
      相关资源
      最近更新 更多