web-dev-qa-db-ja.com

ドキュメントのlinterエラーno-undefの解決

Reactプロジェクトのリントにairbnb拡張機能を使用しています。さて、私のindex.jsには以下があります:

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

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

リンター言う:

no-undef 'document' is not defined.at line 8 col 3

この問題を解決するにはどうすればよいですか?

37
FacundoGFlores

これを解決/回避する方法はいくつかあります。 2つの重要な方法は、documentglobalとして指定するか、eslint-envbrowserとして設定することです(おそらく必要なことです)。これは、1)ファイル内、2)構成内、または3)CLIから実行する場合でも実行できます。

1)インファイル:

  1. ファイル内でbrowserとして環境を設定します。

    /* eslint-env browser */
    import React from 'react';
    import ReactDOM from 'react-dom';
    import App from './App';
    
    ReactDOM.render(
      <App />,
      document.getElementById('root'),
    );
    
  2. ファイル自体にグローバルとして追加します。

    /* global document */
    import React from 'react';
    import ReactDOM from 'react-dom';
    import App from './App';
    
    ReactDOM.render(
      <App />,
      document.getElementById('root'),
    );
    

2)eslint構成:

  1. 構成でbrowserとして環境を設定します。

    {
      "env": {
        "browser": true,
        "node": true
      }
    }
    
  2. 設定にグローバルとして追加します。

    {
      "globals": {
        "document": false
      }
    }
    

3)CLIから:

  1. Envを使用:eslint --env browser,node file.js

  2. グローバルの使用:eslint --global document file.js

リソース:
ESLintでグローバルを指定
ESLintを使用した環境の指定
ESLint CLIでenvを指定
ESLint CLIでグローバルを指定

99
Nick Bartlett