Ответ 1
Предполагая, что вы используете Babel, вы, вероятно, хотите использовать babel-eslint как ваш парсер ESLint ("parser": "babel-eslint",
).
У меня есть настройка проекта с использованием WebPack для использования ESLint, и я хочу использовать ES7 для оператора встроенного связывания ::
. В настоящее время я получаю ошибки синтаксического анализа, показанные ниже
/Users/ryanvice/Documents/Code/pluralsight-redux-starter/src/components/project/ProjectsPage.js (1/0)
✖ 7:27 Parsing error: Unexpected token :
/Users/ryanvice/Documents/Code/pluralsight-redux-starter/src/routes.js (2/2)
✖ 6:26 Parse errors in imported module './components/project/ProjectsPage': Unexpected token : (7:27) import/namespace
✖ 6:26 Parse errors in imported module './components/project/ProjectsPage': Unexpected token : (7:27) import/default
! 6:26 Parse errors in imported module './components/project/ProjectsPage': Unexpected token : (7:27) import/no-named-as-default
! 6:26 Parse errors in imported module './components/project/ProjectsPage': Unexpected token : (7:27) import/no-named-as-default-member
✖ 3 errors ! 2 warnings (4:45:40 PM)
используя следующую конфигурацию .eslintrc
, которая включает "ecmaVersion": 7
{
"extends": [
"eslint:recommended",
"plugin:import/errors",
"plugin:import/warnings"
],
"plugins": [
"react"
],
"parserOptions": {
"ecmaVersion": 7,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"env": {
"es6": true,
"browser": true,
"node": true,
"jquery": true,
"mocha": true
},
"rules": {
"quotes": 0,
"no-console": 1,
"no-debugger": 1,
"no-var": 1,
"semi": [1, "always"],
"no-trailing-spaces": 0,
"eol-last": 0,
"no-unused-vars": 0,
"no-underscore-dangle": 0,
"no-alert": 0,
"no-lone-blocks": 0,
"jsx-quotes": 1,
"react/display-name": [ 1, {"ignoreTranspilerName": false }],
"react/forbid-prop-types": [1, {"forbid": ["any"]}],
"react/jsx-boolean-value": 1,
"react/jsx-closing-bracket-location": 0,
"react/jsx-curly-spacing": 1,
"react/jsx-indent-props": 0,
"react/jsx-key": 1,
"react/jsx-max-props-per-line": 0,
"react/jsx-no-bind": 1,
"react/jsx-no-duplicate-props": 1,
"react/jsx-no-literals": 0,
"react/jsx-no-undef": 1,
"react/jsx-pascal-case": 1,
"react/jsx-sort-prop-types": 0,
"react/jsx-sort-props": 0,
"react/jsx-uses-react": 1,
"react/jsx-uses-vars": 1,
"react/no-danger": 1,
"react/no-did-mount-set-state": 1,
"react/no-did-update-set-state": 1,
"react/no-direct-mutation-state": 1,
"react/no-multi-comp": 1,
"react/no-set-state": 0,
"react/no-unknown-property": 1,
"react/prefer-es6-class": 1,
"react/prop-types": 1,
"react/react-in-jsx-scope": 1,
"react/require-extension": 1,
"react/self-closing-comp": 1,
"react/sort-comp": 1,
"react/wrap-multilines": 1
}
}
Предполагая, что вы используете Babel, вы, вероятно, хотите использовать babel-eslint как ваш парсер ESLint ("parser": "babel-eslint",
).
Добавьте это к вашему .eslintrc.json
:
"parserOptions": {
"ecmaVersion": 2016
},
Источник: https://eslint.org/docs/user-guide/configuring#specifying-parser-options
ecmaVersion - установите 3, 5 (по умолчанию), 6, 7, 8, 9 или 10, чтобы указать версию синтаксиса ECMAScript, которую вы хотите использовать. Вы также можете установить 2015 (то же, что 6), 2016 (то же самое, что 7), 2017 (то же самое как 8), 2018 (то же самое как 9) или 2019 (то же самое как 10), чтобы использовать наименование на основе года.