错误'文件'未定义:eslint / React

时间:2017-02-21 20:12:13

标签: reactjs jestjs jsx jsdom

我正在使用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
  }
};

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

4 个答案:

答案 0 :(得分:41)

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

有关详细信息,请参阅ESLint environment documentation

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:0)

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

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

如果您没有.eslintrc.json,则可以在package.json文件中添加这些设置。

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