Разрешить eslint (node/no-unsupported-features/es-syntax) — Как поддерживать модули JavaScript в ESLint?

Пишу игру на JavaScript/Redux. Я не могу настроить свой файл .eslintrc.json так, чтобы он поддерживал последний синтаксис JavaScript — я получаю сообщение о том, что

«Объявления импорта и экспорта еще не поддерживаются» eslint(node/no-unsupported-features/es-syntax).

Я прочитал официальную документацию по конфигурации для ESLint и попробовал (я думал, что все) комбинации за последние несколько часов (изменение среды, ecmaVersions, синтаксические анализаторы и параметры синтаксического анализатора).

Последнее, что я пробовал, это установить парсер babel-eslint, и на данный момент мой .eslintrc.json выглядит так:

{
  "extends": ["airbnb-base", "prettier", "plugin:node/recommended"],
  "plugins": ["prettier"],
  "env": {
    "es2020": true
  },
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 2020,
    "sourceType": "module"
  },
  "rules": {
    "prettier/prettier": "error"
  }
}

И мой package.json:

{
  "name": "astroman-game",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "scripts": {
    "build": "webpack",
    "start": "webpack-dev-server --open",
    "eslint": "eslint ./"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.5.5",
    "@babel/preset-env": "^7.5.5",
    "babel-eslint": "^10.0.3",
    "babel-loader": "^8.0.6",
    "eslint": "^6.1.0",
    "eslint-config-airbnb-base": "^14.0.0",
    "eslint-config-node": "^4.0.0",
    "eslint-config-prettier": "^6.10.0",
    "eslint-plugin-import": "^2.18.2",
    "eslint-plugin-node": "^11.0.0",
    "eslint-plugin-prettier": "^3.1.2",
    "prettier": "^1.19.1",
    "webpack": "^4.39.3",
    "webpack-cli": "^3.3.7",
    "webpack-dev-server": "^3.8.0"
  },
  "dependencies": {
    "redux-starter-kit": "^0.6.3"
  }
}

Но и это не решило проблему. Я ценю вашу помощь!


person Aga    schedule 31.01.2020    source источник


Ответы (1)


Вы расширяетесь от plugin:node/recommended, который предназначен для NodeJS. Node поддерживает только require(), которые являются импортом в стиле CommonJS. У вашего внешнего приложения нет причин использовать этот набор рекомендаций.

Удалить plugin:node/recommended из списка extends

"extends": ["airbnb-base", "prettier"],
person Soviut    schedule 01.02.2020