Babel ESLint:TypeError:无法读取null的属性“范围" [英] Babel ESLint: TypeError: Cannot read property 'range' of null

查看:138
本文介绍了Babel ESLint:TypeError:无法读取null的属性“范围"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用babel-eslint整理/修复我的代码.一直很好,直到我想采用一些ES2017 async await,发现它在此.

I use babel-eslint to lint/fix my code. Worked great until I wanted to adopt some ES2017 async await found overhere.

我相应地更改了我的React应用,尽管略有不同:

I changed my React app accordingly, allbeit slightly different:

我的index.js的相关部分:

The relevant part of my index.js:

async function renderApp() {
  const store = await configureStore()

  const history = syncHistoryWithStore(browserHistory, store, {
    selectLocationState: state => state.get('routing')
  })

  ReactDOM.render(
    <AppContainer>
      <MuiThemeProvider muiTheme={muiTheme}>
        <Provider store={store}>
          <Router history={history} routes={routes(store)} />
        </Provider>
      </MuiThemeProvider>
    </AppContainer>,
    document.getElementById('root')
  )
}


renderApp()

我的商店:

// @flow

import 'babel-polyfill'

import { addFormSubmitSagaTo } from 'redux-form-submit-saga/es/immutable'
import { applyMiddleware, createStore, compose } from 'redux'
import { autoRehydrate, persistStore } from 'redux-persist-immutable'
import { browserHistory } from 'react-router'
import { combineReducers } from 'redux-immutable'
import { fromJS } from 'immutable'
import { routerMiddleware } from 'react-router-redux'
import createSagaMiddleware from 'redux-saga'

import rootReducer from './rootReducer'
import sagas from './rootSaga'

export default function configureStore() {
  return new Promise((resolve, reject) => {
    try {
      const sagaMiddleware = createSagaMiddleware()
      const middleware = [ routerMiddleware(browserHistory), sagaMiddleware ]

      const enhancer = compose(
        autoRehydrate(),
        applyMiddleware(...middleware)
      )
      const store = createStore(
        combineReducers(rootReducer),
        undefined,
        enhancer
      )

      // Decorate with Redux Form Submit Saga
      // and create hook for saga's
      const rootSaga = addFormSubmitSagaTo(sagas)
      sagaMiddleware.run(rootSaga)

      // Persist store to the local storage
      persistStore(
        store,
        { whitelist: ['auth', 'timezone'] },
        () => resolve(store)
      )
    } catch (e) {
      reject(e)
    }
  })
}

这是我的.eslintrc:

Here's my .eslintrc:

{
  "env": {
    "browser": true,
    "jest/globals": true
  },
  "extends": [
    "standard",
    "standard-flow",
    "plugin:react/recommended"
  ],
  "plugins": [
    "compat",
    "jest",
    "react"
  ],
  "parserOptions": {
    "ecmaVersion": 2017,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "rules": {
    "comma-dangle": ["warn", "only-multiline"],
    "compat/compat": 2,
    "jest/no-disabled-tests": "warn",
    "jest/no-focused-tests": "error",
    "jest/no-identical-title": "error",
    "max-len": ["warn", 80],
    "no-debugger": 0,
    "react/jsx-uses-vars": [2]
  }
}

这是我的.babelrc:

Here's my .babelrc:

{
  "plugins": [
    "react-hot-loader/babel",
    "syntax-flow",
    "tcomb",
    "transform-class-properties"
  ],
  "presets": [
    "es2015",
    "react",
    ["env", {
      "targets": {
        "browsers": ["last 2 versions"]
      }
    }]
  ]
}

但是无论我做什么:我总是收到以下错误:

But whatever I do: I keep getting the following error:

Module build failed: TypeError: Cannot read property 'range' of null
    at TokenStore.getTokenBefore (/Users/danielterwiel/dev/nimbus/node_modules/eslint/lib/token-store/index.js:318:17)
    at EventEmitter.checkFunction (/Users/danielterwiel/dev/nimbus/node_modules/eslint/lib/rules/generator-star-spacing.js:131:42)
    at emitOne (events.js:101:20)
    at EventEmitter.emit (events.js:191:7)
    at NodeEventGenerator.enterNode (/Users/danielterwiel/dev/nimbus/node_modules/eslint/lib/util/node-event-generator.js:39:22)
    at CodePathAnalyzer.enterNode (/Users/danielterwiel/dev/nimbus/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js:607:23)
    at CommentEventGenerator.enterNode (/Users/danielterwiel/dev/nimbus/node_modules/eslint/lib/util/comment-event-generator.js:98:23)
    at Controller.enter (/Users/danielterwiel/dev/nimbus/node_modules/eslint/lib/eslint.js:928:36)
    at Controller.__execute (/Users/danielterwiel/dev/nimbus/node_modules/estraverse/estraverse.js:397:31)
    at Controller.traverse (/Users/danielterwiel/dev/nimbus/node_modules/estraverse/estraverse.js:501:28)
 @ multi react-hot-loader/patch webpack-hot-middleware/client babel-polyfill ./src/index.js ./src/style/main.css

我不确定该怎么做.我遇到了多个

I'm not entirely sure what to do. I came accross multiple posts with similar problems, but none of these have lead to an answer until now.

推荐答案

在ESLint原生支持ES2017 async/await之前,babel-eslint包括 babel-eslint@7.0.0 .您应该将babel-eslint升级到v7,或者,如果不能这样做,请使用eslint-plugin-babel已修补generator-star-spacing规则.

Prior to ESLint supporting ES2017 async/await natively, babel-eslint included workarounds that were removed in babel-eslint@7.0.0. You should either upgrade babel-eslint to v7 or, if you can't do that, use eslint-plugin-babel's patched generator-star-spacing rule.

这篇关于Babel ESLint:TypeError:无法读取null的属性“范围"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆