For example, if I use an ES6 import module in a file instead of require, the import works, but es2020 operators such as "?." give an error.
SyntaxError: Invalid or unexpected token
Nodejs version 14.17.3.
What’s even more interesting is that even if the imported module is commented out, this does not help, an error is still thrown when starting the server and the module must be removed for everything to work again.
Config is in the eslintrc file.
{
"parser": "@babel/eslint-parser",
"env": {
"node": true,
"es2020": true
},
"plugins": [
"jsx-a11y",
"eslint-plugin-jsx",
"eslint-plugin-node",
"eslint-plugin-standard"
],
"extends": [
"eslint:recommended",
"plugin:node/recommended",
"plugin:jsx-a11y/recommended"
],
"parserOptions": {
"ecmaVersion": 11,
"sourceType": "module",
"ecmaFeatures": {
"arrowFunctions": true,
"blockBindings": true,
"classes": true,
"defaultParams": true,
"destructuring": true,
"forOf": true,
"generators": true,
"modules": true,
"objectLiteralComputedProperties": true,
"objectLiteralDuplicateProperties": false,
"objectLiteralShorthandMethods": true,
"objectLiteralShorthandProperties": true,
"spread": true,
"superInFunctions": true,
"templateStrings": true,
"jsx": true
},
"allowImportExportEverywhere": true
},
"settings": {
"node": {"version": "14.17.3"}
},
"rules": {
"no-var": 2,
"prefer-const": 2,
"no-shadow": 2,
"no-shadow-restricted-names": 2,
"no-undef": 2,
"no-unused-vars": [2, { "vars": "local", "args": "after-used" }],
"no-use-before-define": 2,
"no-cond-assign": [2, "always"],
"no-console": 1,
"no-debugger": 1,
"no-alert": 2,
"no-constant-condition": 2,
"no-dupe-keys": 2,
"no-duplicate-case": 2,
"no-empty": 2,
"no-ex-assign": 2,
"no-extra-boolean-cast": 2,
"no-extra-semi": 0,
"no-func-assign": 2,
"no-inner-declarations": 2,
"no-invalid-regexp": 2,
"no-irregular-whitespace": 2,
"no-obj-calls": 2,
"no-sparse-arrays": 2,
"no-unreachable": 2,
"use-isnan": 2,
"block-scoped-var": 2,
"consistent-return": 2,
"curly": [2, "multi-line"],
"default-case": 2,
"dot-notation": [2, { "allowKeywords": true }],
"eqeqeq": 2,
"guard-for-in": 2,
"no-caller": 2,
"no-else-return": 2,
"no-eq-null": 2,
"no-eval": 2,
"no-extend-native": 2,
"no-extra-bind": 2,
"no-fallthrough": 2,
"no-floating-decimal": 2,
"no-implied-eval": 2,
"no-lone-blocks": 2,
"no-loop-func": 2,
"no-multi-str": 2,
"no-native-reassign": 2,
"no-new": 2,
"no-new-func": 2,
"no-new-wrappers": 2,
"no-octal": 2,
"no-octal-escape": 2,
"no-param-reassign": 2,
"no-proto": 2,
"no-redeclare": 2,
"no-return-assign": 2,
"no-script-url": 2,
"no-self-compare": 2,
"no-sequences": 2,
"no-throw-literal": 2,
"no-with": 2,
"radix": 1,
"vars-on-top": 1,
"yoda": 2,
"indent": 0,
"brace-style": [2, "1tbs", { "allowSingleLine": true }],
"quotes": [2, "single", "avoid-escape"],
"quote-props": [2, "as-needed", {"keywords": true, "unnecessary": true }],
"camelcase": [2, { "properties": "always" }],
"comma-spacing": [2, { "before": false, "after": true }],
"comma-style": [2, "last"],
"eol-last": 2,
"key-spacing": [2, { "beforeColon": false, "afterColon": true }],
"new-cap": [0, { "newIsCap": true }],
"no-multiple-empty-lines": [2, { "max": 2 }],
"no-nested-ternary": 1,
"no-new-object": 2,
"no-spaced-func": 2,
"no-trailing-spaces": 2,
"no-extra-parens": [2, "functions"],
"no-underscore-dangle": 1,
"one-var": [1, "consecutive"],
"padded-blocks": "off",
"semi": [2, "always"],
"semi-spacing": [2, { "before": false, "after": true }],
"space-before-blocks": 2,
"space-before-function-paren": [2, "never"],
"space-infix-ops": 2,
"spaced-comment": [2, "always", { "exceptions": ["-", "+"], "markers": ["=", "!"] }],
"jsx-quotes": [2, "prefer-double"],
"node/no-unpublished-require": 2,
"node/no-unsupported-features/es-syntax": 0
}
}
I checked the eslintrc, package.json files.