2017-01-25 27 views
15

我正在使用airbnb擴展名爲linting我的React項目。現在,在我的index.js我:解決文件的linter錯誤no-undef

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 

我怎樣才能解決這個問題?

回答

47

有很多方法可以解決/解決這個問題。兩個關鍵方法是指定documentglobal或將eslint-env設置爲browser(您可能需要)。您可以在1)in-file中執行此操作,2)在配置中執行此操作,或者3)從CLI執行時執行此操作。

1)文件:

/* eslint-env browser */ 
import React from 'react'; 
import ReactDOM from 'react-dom'; 
import App from './App'; 

ReactDOM.render(
    <App />, 
    document.getElementById('root'), 
); 
  • 它添加文件本身在全球:

    /* global document */ 
    import React from 'react'; 
    import ReactDOM from 'react-dom'; 
    import App from './App'; 
    
    ReactDOM.render(
        <App />, 
        document.getElementById('root'), 
    ); 
    
    1. 在文件中設置環境browser

    2)在eslint co nfiguration:

    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

    資源:
    Specifying Globals with ESLint
    Specifying Environments with ESLint
    Specifying env with ESLint CLI
    Specifying globals with ESLint CLI

    +0

    非常CLE ar說明。謝謝。 – Viraths