2017-03-23 13 views
5

की संपत्ति 'रेंज' नहीं पढ़ सकता है मैं अपने कोड को लिंट/ठीक करने के लिए बेबेल-एस्लिंट का उपयोग करता हूं। जब तक मैं कुछ ES2017 async await को overhere पाया, तब तक बहुत अच्छा काम किया।बेबेल ESLint: TypeError: शून्य

मैं अपने तदनुसार प्रतिक्रिया अनुप्रयोग, allbeit थोड़ा अलग बदल दिया है:

मेरी 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 है:

{ 
    "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 है:

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

लेकिन जो कुछ भी मैं करता हूँ: मैं निम्नलिखित त्रुटि मिलती रहती है:

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 

मैं पूरी तरह क्या करना है यकीन नहीं है। मैं multipleposts में इसी तरह की समस्याओं के साथ आया, लेकिन इनमें से कोई भी अब तक एक जवाब का कारण बन गया है।

+0

क्या आपने 'एस्लिंट' और' बेबेल-एस्लिंट 'के संस्करण स्थापित किए हैं? 'npm ls eslint babel-eslint' – btmills

+0

' eslint @ 3.17.1' और 'babel-eslint @ 6.1.2' (' eslint-config-standard-flow @ 1.0.1' की निर्भरता के रूप में स्थापित) – Dani

उत्तर

8

ESLint से पहले देशी रूप ES2017 async/await समर्थन, babel-eslint[email protected] में workarounds that were removed शामिल थे। आपको या तो babel-eslint को v7 में अपग्रेड करना चाहिए या यदि आप ऐसा नहीं कर सकते हैं, तो eslint-plugin-babel का patched generator-star-spacing rule का उपयोग करें।

संबंधित मुद्दे