Parsing error unexpected token expected jsxtagend

With this code: import React from 'react'; import { Link } from 'react-router'; import { View, NavBar } from 'amazeui-touch'; import * as Pages from '../components'; const { Home, ...Components...

With this code:

import React from 'react';
import { Link } from 'react-router';
import { View, NavBar } from 'amazeui-touch';

import * as Pages from '../components';

const {  Home, ...Components } = Pages;

I get this eslint error:

7:16  error  Parsing error: Unexpected token .. Why?

Here is my eslint config:

{
  "extends": "airbnb",
  "rules": {
    /* JSX */
    "react/prop-types": [1, {
      "ignore": ["className", "children", "location", "params", "location*"]
    }],
    "no-param-reassign": [0, {
      "props": false
    }],
    "prefer-rest-params": 1,
    "arrow-body-style": 0,
    "prefer-template": 0,
    "react/prefer-stateless-function": 1,
    "react/jsx-no-bind": [0, {
      "ignoreRefs": false,
      "allowArrowFunctions": false,
      "allowBind": true
    }],
  }
}

….
….
What’s the problem?

Brigand's user avatar

Brigand

83.2k19 gold badges163 silver badges170 bronze badges

asked Mar 15, 2016 at 2:19

DongYao's user avatar

2

Unexpected token errors in ESLint parsing occur due to incompatibility between your development environment and ESLint’s current parsing capabilities with the ongoing changes with JavaScripts ES6~7.

Adding the «parserOptions» property to your .eslintrc is no longer enough for particular situations, such as using

static contextTypes = { ... } /* react */

in ES6 classes as ESLint is currently unable to parse it on its own. This particular situation will throw an error of:

error Parsing error: Unexpected token =

The solution is to have ESLint parsed by a compatible parser, i.e @babel/eslint-parser or babel-eslint for babel version below v7.

just add:

"parser": "@babel/eslint-parser"

to your .eslintrc file and run npm install @babel/eslint-parser --save-dev or yarn add -D @babel/eslint-parser.

Please note that as the new Context API starting from React ^16.3 has some important changes, please refer to the official guide.

answered Apr 15, 2017 at 12:56

hanorine's user avatar

hanorinehanorine

6,9263 gold badges13 silver badges18 bronze badges

11

In my case (im using Firebase Cloud Functions) i opened .eslintrc.json and changed:

"parserOptions": {
  // Required for certain syntax usages
  "ecmaVersion": 2017
},

to:

"parserOptions": {
  // Required for certain syntax usages
  "ecmaVersion": 2020
},

Dmitry Grinko's user avatar

answered Sep 26, 2019 at 19:59

Alvin Konda's user avatar

Alvin KondaAlvin Konda

2,66822 silver badges22 bronze badges

3

ESLint 2.x experimentally supports ObjectRestSpread syntax, you can enable it by adding the following to your .eslintrc: docs

"parserOptions": {
  "ecmaVersion": 6,
  "ecmaFeatures": {
    "experimentalObjectRestSpread": true
  }
},

ESLint 1.x doesn’t natively support the spread operator, one way to get around this is using the babel-eslint parser. The latest installation and usage instructions are on the project readme.

answered Mar 15, 2016 at 6:19

Kevan Ahlquist's user avatar

Kevan AhlquistKevan Ahlquist

5,2151 gold badge17 silver badges23 bronze badges

6

"parser": "babel-eslint" helped me to fix the issue

{
    "parser": "babel-eslint",
    "parserOptions": {
        "ecmaVersion": 6,
        "sourceType": "module",
        "ecmaFeatures": {
            "jsx": true,
            "modules": true,
            "experimentalObjectRestSpread": true
        }
    },
    "plugins": [
        "react"
    ],
    "extends": ["eslint:recommended", "plugin:react/recommended"],
    "rules": {
        "comma-dangle": 0,
        "react/jsx-uses-vars": 1,
        "react/display-name": 1,
        "no-unused-vars": "warn",
        "no-console": 1,
        "no-unexpected-multiline": "warn"
    },
    "settings": {
        "react": {
            "pragma": "React",
            "version": "15.6.1"
        }
    }
}

Reference

Rajendran Nadar's user avatar

answered Jul 25, 2017 at 9:56

7

I solved this issue by
First, installing babel-eslint using npm

npm install babel-eslint --save-dev

Secondly, add this configuration in .eslintrc file

{
   "parser":"babel-eslint"
}

answered Apr 4, 2019 at 4:04

Joee's user avatar

JoeeJoee

1,75416 silver badges18 bronze badges

1

Originally, the solution was to provide the following config as object destructuring used to be an experimental feature and not supported by default:

{
  "parserOptions": {
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true
    }
  }
}

Since version 5, this option has been deprecated.

Now it is enough just to declare a version of ES, which is new enough:

{
  "parserOptions": {
    "ecmaVersion": 2018
  }
}

answered Mar 16, 2020 at 16:12

Vojtech Ruzicka's user avatar

Vojtech RuzickaVojtech Ruzicka

16k15 gold badges64 silver badges64 bronze badges

I’m using eslint for cloud-functions (development env: flutter 2.2.3).

In my case .eslintrc.json does not exist so I had to update the .eslintrc.js file by including parserOptions: { "ecmaVersion": 2020, }, property at the end of file. My updated .eslintrc.js file looks like this:

module.exports = {
  root: true,
  env: {
    es6: true,
    node: true,
  },
  extends: [
    "eslint:recommended",
    "google",
  ],
  rules: {
    quotes: ["error", "double"],
  },
  
  // Newly added property
  parserOptions: {
    "ecmaVersion": 2020,
  },
};

answered Sep 23, 2021 at 6:49

sh_ark's user avatar

sh_arksh_ark

5475 silver badges14 bronze badges

1

Just for the record, if you are using eslint-plugin-vue, the correct place to add 'parser': 'babel-eslint' is inside parserOptions param.

  'parserOptions': {
    'parser': 'babel-eslint',
    'ecmaVersion': 2018,
    'sourceType': 'module'
  }

https://eslint.vuejs.org/user-guide/#faq

answered Feb 5, 2020 at 23:07

Cristiano's user avatar

CristianoCristiano

1342 silver badges4 bronze badges

I solved this problem by setting this in .eslintrc.json file:

"extends": [
    ...,
    "plugin:prettier/recommended"
]

Dharman's user avatar

Dharman

29.3k21 gold badges80 silver badges131 bronze badges

answered Sep 1, 2021 at 8:55

Pazu's user avatar

PazuPazu

1412 silver badges7 bronze badges

In febrary 2021 you can use theese values

ecmaVersion — set to 3, 5 (default), 6, 7, 8, 9, 10, 11, or 12 to specify the version of ECMAScript syntax you want to use. You can also set to 2015 (same as 6), 2016 (same as 7), 2017 (same as 8), 2018 (same as 9), 2019 (same as 10), 2020 (same as 11), or 2021 (same as 12) to use the year-based naming.

https://eslint.org/docs/user-guide/configuring/language-options#specifying-parser-options

answered Mar 3, 2021 at 17:18

Alexander Shestakov's user avatar

For React + Firebase Functions

Go to : functions -> .eslintrc.js

Add it —
parserOptions: {
ecmaVersion: 8,
},

module.exports = {
  root: true,
  env: {
    es6: true,
    node: true,
  },
  parserOptions: {
    ecmaVersion: 8,
  },
  extends: ["eslint:recommended", "google"],
  rules: {
    quotes: ["error", "double"],
  },
};

answered May 14, 2022 at 6:37

Pankaj Kumar's user avatar

1

If you have got a pre-commit task with husky running eslint, please continue reading. I tried most of the answers about parserOptions and parser values where my actual issue was about the node version I was using.

My current node version was 12.0.0, but husky was using my nvm default version somehow (even though I didn’t have nvm in my system). This seems to be an issue with husky itself. So:

  1. I deleted $HOME/.nvm folder which was not deleted when I removed nvm earlier.
  2. Verified node is the latest and did proper parser options.
  3. It started working!

answered Oct 8, 2019 at 11:47

Asim K T's user avatar

Asim K TAsim K T

16.3k10 gold badges76 silver badges98 bronze badges

I was facing the issue despite implementing all the above solutions. When I downgraded the eslint version, it started working

answered May 5, 2021 at 18:46

Pravin Varma's user avatar

1

I’m using typescript and I solve this error change parser

....
"prettier/prettier": [
            "error",
            {
                .....
                "parser": "typescript",
                .....
            }
        ],
....

answered Apr 28, 2021 at 9:36

Dálcio Macuete Garcia's user avatar

2

.
.
{
    "parserOptions": {
    "ecmaVersion": 2020
},
.
.

Will do the trick.

answered Nov 14, 2022 at 7:09

Krishan Pal's user avatar

I had to update the ecmaVersion to "latest"

"parserOptions": {
    "parser": "@babel/eslint-parser",
    "sourceType": "module",
    "ecmaVersion": "latest",
    "ecmaFeatures": {
      "jsx": true,
      "experimentalObjectRestSpread": true
    },
    "requireConfigFile": false
  },

answered Nov 28, 2022 at 20:39

Philip Sopher's user avatar

Philip SopherPhilip Sopher

4972 gold badges5 silver badges18 bronze badges

1 / 1 / 0

Регистрация: 15.06.2021

Сообщений: 19

1

23.12.2021, 22:02. Показов 862. Ответов 8


Хочу сделать движущейся текст, при запуске сайта ничего не происходит, компилятор выдаёт одну ошибку:

Код

parsing error: unexpected token

скажите пожалуйста что с этим делать ?

И ещё когда я показывал это учителю он сказал что я не вызываю функцию анимации
хотя в <head> я прописал <script src="script.js"></script>, это разве не вызов ? Или я её не туда поставил ?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

23.12.2021, 22:02

8

Модератор

Эксперт HTML/CSS

2110 / 1434 / 639

Регистрация: 13.03.2010

Сообщений: 4,917

23.12.2021, 22:31

2

Akar-, код является секретом?



0



Akar-

1 / 1 / 0

Регистрация: 15.06.2021

Сообщений: 19

23.12.2021, 22:43

 [ТС]

3

Виноват

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function anim() {
    let elem = document.getElementsById("word");
    let pos=0;
    let id = setInterval(frame, 10);
}
function movimg(){
    if (pos== 2000){
        clearInterval(id);
        }
else{
    pos++;
    elem.style.left=pos+'px';
}
}



0



mr_dramm

Ищу работу React

817 / 622 / 213

Регистрация: 17.07.2021

Сообщений: 1,341

Записей в блоге: 7

23.12.2021, 23:12

4

Эти переменные

Javascript
1
2
    let pos=0;
    let id = setInterval(frame, 10);

видны только в anim, а функции frame тут не видно и пока не понятно что вызывает ошибку

Цитата
Сообщение от Akar-
Посмотреть сообщение

parsing error: unexpected token



0



2151 / 948 / 329

Регистрация: 24.07.2016

Сообщений: 1,355

23.12.2021, 23:12

5

В одной функции вы объявляете переменные, а в другой функции вы их поймать пытаетесь? Нее, глухой номер. Всё веселье портит область видимости переменных
А что это за frame в setInterval()? Надеюсь функция? Тогда где она? Вынесите переменные в глобальную область … а лучше давайте сюда, и html, и остальной код. Или это всё? )



1



Akar-

1 / 1 / 0

Регистрация: 15.06.2021

Сообщений: 19

23.12.2021, 23:23

 [ТС]

6

klyapa, Да, похоже вы правы. Но проблема всё ещё остаётся, ещё важное уточнение что ошибка появляется всегда в первой строчки какой бы она не была. C JS это всё, а зачем ва HTML не понимаю, с ним всё в порядке. Но если это может помочь:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html>
  
<html>
<head>
<title ><p> HomeWork </p> </title>
<link rel="stylesheet" href = "css.css" type="text/css">
   
</head>
<body>
<div id="done">
 <span class="text0"> home   &emsp;  </span>
<span class="text0"> about   &emsp;  </span>
<span class="text0"> servise  &emsp;   </span>
<span class="text0"> blog   &emsp;  </span>
<span class="text0"> contract &emsp;    </span>
</div>
    <br>
       <hr id="hr1"/>
 
   
<div id=dtwo>
 <div id="word">
    <h> informer</h>
<script> src ="script.js" </script>
    </div>
<p id=text1> it suport company</p>
</div>
 
    <div id= "img1"> 
        
        <div style="display: inline-block"> <img class="image"  src ="img/logo_lithg.jpg">
        <p class=imgtext>ideas</p>
        </div>
        
   <div style="display: inline-block"><img class="image" src ="img/512x512bb.jpg">
          <p class=imgtext>phone</p>
        </div> 
        
        <div style="display: inline-block"><img class="image" src ="img/Logo-smartfon.png">
           <p class=imgtext>network</p>
        </div>
        
        <div style="display: inline-block">   <img class="image" src ="img/i.jpg">
           <p class=imgtext>support</p>
        </div>
        
    </div>
    <div class="enter">
        <h1>technical support </h1> 
        <form method="post" action="MyPHP.php"> 
        
            <input type="text" id="EnterN" name="Ntext" placeholder="Enter your name:"> 
            <br />
               <input type="text" id="EnterQ" name="Qtext" placeholder="Enter your qustion:"> 
            <button id="send" type="submit"> Send </button>
        
        </form>
    </div>
    <hr id="hr2">
    <p id="textfin">informer (c) 2014 privacy policy</p>
   <script srс = "script.js"> </script>
</body>
</html>



0



klyapa

2151 / 948 / 329

Регистрация: 24.07.2016

Сообщений: 1,355

23.12.2021, 23:58

7

Akar-, на 24 строке зачем вы скрипт подключили? Что за тег <h>? Или я что-то пропустил?

Цитата
Сообщение от Akar-
Посмотреть сообщение

C JS это всё

Ага, ясно, функции frame, которую вы вызываете в setInterval(), попросту нет. Досадно однако. Чтобы случилось волшебство бегущей строки нужно обязательно дунуть )

HTML5
1
<marquee>informer</marquee>

или …

HTML5
1
<div id="word">informer</div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
const elem = document.getElementById("word");
      elem.style.position = 'absolute';
let pos = 0,
    idInt = setInterval(frame, 10);
 
function frame() {
  if (pos === 600) {
    clearInterval(idInt);
  } else {
    pos++;
    elem.style.left = pos + 'px';
  }
}

Добавлено через 4 минуты
Кстати, ваш метод document.getElementsById(«word») написан неправильно, с лишней s. Должно быть document.getElementById("word")



0



Ищу работу React

817 / 622 / 213

Регистрация: 17.07.2021

Сообщений: 1,341

Записей в блоге: 7

24.12.2021, 00:00

8

Вот тут и проявляется вся прелесть писания кода в notepad, проверьте свой html на этой странице и исправьте все ошибки



0



2151 / 948 / 329

Регистрация: 24.07.2016

Сообщений: 1,355

24.12.2021, 00:01

9

В html все значения классов и id должны быть в кавычках.



0



С помощью этого кода:

import React from 'react';
import { Link } from 'react-router';
import { View, NavBar } from 'amazeui-touch';

import * as Pages from '../components';

const {  Home, ...Components } = Pages;

Я получаю эту ошибку eslint:

7:16  error  Parsing error: Unexpected token .. Why?

Вот моя конфигурация eslint:

{
  "extends": "airbnb",
  "rules": {
    /* JSX */
    "react/prop-types": [1, {
      "ignore": ["className", "children", "location", "params", "location*"]
    }],
    "no-param-reassign": [0, {
      "props": false
    }],
    "prefer-rest-params": 1,
    "arrow-body-style": 0,
    "prefer-template": 0,
    "react/prefer-stateless-function": 1,
    "react/jsx-no-bind": [0, {
      "ignoreRefs": false,
      "allowArrowFunctions": false,
      "allowBind": true
    }],
  }
}

….
….
В чем проблема?

4b9b3361

Ответ 1

Непредвиденные ошибки токенов при синтаксическом анализе ESLint возникают из-за несовместимости среды разработки и текущих возможностей синтаксического анализа ESLint с текущими изменениями в JavaScripts ES6 ~ 7.

Добавление свойства «parserOptions» к вашему.eslintrc больше не достаточно для определенных ситуаций, таких как использование

static contextTypes = { ... } /* react */

в классах ES6, поскольку ESLint в настоящее время не может разобрать его самостоятельно. Эта конкретная ситуация вызовет ошибку:

error Parsing error: Unexpected token =

Решение состоит в том, чтобы ESLint анализировал совместимый синтаксический анализатор. babel-eslint — это пакет, который недавно спас меня после прочтения этой страницы, и я решил добавить его в качестве альтернативного решения для всех, кто придет позже.

просто добавь:

"parser": "babel-eslint"

в файл .eslintrc и запустите npm install babel-eslint --save-Dev или yarn add -D babel-eslint.

Обратите внимание, что, поскольку в новом Context API, начиная с React ^16.3 есть некоторые важные изменения, обратитесь к официальному руководству.

Ответ 2

ESLint 2.x экспериментально поддерживает синтаксис ObjectRestSpread, вы можете включить его, добавив следующее к вашему .eslintrc: docs

"parserOptions": {
  "ecmaVersion": 6,
  "ecmaFeatures": {
    "experimentalObjectRestSpread": true
  }
},

ESLint 1.x не поддерживает оператор спреда, один из способов обойти это с помощью анализатора babel-eslint. Последние инструкции по установке и использованию находятся в файле readme проекта.

Ответ 3

"parser": "babel-eslint" помог мне решить проблему

{
    "parser": "babel-eslint",
    "parserOptions": {
        "ecmaVersion": 6,
        "sourceType": "module",
        "ecmaFeatures": {
            "jsx": true,
            "modules": true,
            "experimentalObjectRestSpread": true
        }
    },
    "plugins": [
        "react"
    ],
    "extends": ["eslint:recommended", "plugin:react/recommended"],
    "rules": {
        "comma-dangle": 0,
        "react/jsx-uses-vars": 1,
        "react/display-name": 1,
        "no-unused-vars": "warn",
        "no-console": 1,
        "no-unexpected-multiline": "warn"
    },
    "settings": {
        "react": {
            "pragma": "React",
            "version": "15.6.1"
        }
    }
}

Ссылка

Ответ 4

Сначала я решил эту проблему, установив babel-eslint с помощью npm.

npm install babel-eslint --save-dev

Во-вторых, добавьте эту конфигурацию в файл .eslintrc.

{
   "parser":"babel-eslint"
}

Ответ 5

У меня возникла та же проблема, и я обнаружил, что какой-то код был написан вне функции render() по ошибке. Хмель это помогает.

Ответ 6

В моем случае (я использую Firebase Cloud Functions) я открыл .eslintrc.json и изменил:

"parserOptions": {
  // Required for certain syntax usages
  "ecmaVersion": 2017
},

в:

"parserOptions": {
  // Required for certain syntax usages
  "ecmaVersion": 2018
},

Ответ 7

Если у вас есть задача предварительной фиксации с запущенным лайком eslint, пожалуйста, продолжайте читать. Я перепробовал большинство ответов о значениях parserOptions и parser, где моя настоящая проблема касалась версии узла, которую я использовал.

Моя текущая версия узла была 12.0.0, но лайка каким-то образом использовала мою версию по умолчанию для nvm (хотя в моей системе не было nvm). Похоже, это проблема с самим хаски. Итак:

  1. Я удалил папку $HOME/.nvm, которая не была удалена, когда я ранее удалил nvm.
  2. Проверенный узел является последним и имеет правильные параметры парсера.
  3. Это начало работать!

Ответ 8

педо чуко апеста, уу да есть;) лол

Когда встречается. Допустим, вы пишете цикл for на JavaScript и вспоминаете, что там нужна переменная цикла, условие и шаг цикла:

for var i = 1; i < 10; i++ {
<span style="font-weight: 400;">  // какой-то код</span>
<span style="font-weight: 400;">}</span>

После запуска в браузере цикл падает с ошибкой:

❌ Uncaught SyntaxError: Unexpected token ‘var’

Что значит. Unexpected token означает, что интерпретатор вашего языка встретил в коде что-то неожиданное. В нашем случае это интерпретатор JavaScript, который не ожидал увидеть в этом месте слово var, поэтому остановил работу.

Причина — скорее всего, вы пропустили что-то из синтаксиса: скобку, кавычку, точку с запятой, запятую, что-то подобное. Может быть, у вас была опечатка в служебном слове и язык его не распознал.

Что делать с ошибкой Uncaught SyntaxError: Unexpected token

Когда интерпретатор не может обработать скрипт и выдаёт ошибку, он обязательно показывает номер строки, где эта ошибка произошла (в нашем случае — в первой же строке):

Интерпретатор обязательно показывает номер строки, где произошла ошибка Uncaught SyntaxError: Unexpected token

Если мы нажмём на надпись VM21412:1, то браузер нам сразу покажет строку с ошибкой и подчеркнёт непонятное для себя место:

Строка с ошибкой Uncaught SyntaxError: Unexpected token

По этому фрагменту сразу видно, что браузеру не нравится слово var. Что делать теперь:

  • Проверьте, так ли пишется эта конструкция на вашем языке. В случае JavaScript тут не хватает скобок. Должно быть for (var i=1; i<10; i++) {}
  • Посмотрите на предыдущие команды. Если там не закрыта скобка или кавычка, интерпретатор может ругаться на код немного позднее.

Попробуйте сами

Каждый из этих фрагментов кода даст ошибку Uncaught SyntaxError: Unexpected token. Попробуйте это исправить.

if (a==b) then  {}
function nearby(number, today, oneday, threeday) {
  if (user_today == today + 1 || user_today == today - 1)
    (user_oneday == oneday + 1 || user_oneday == oneday - 1)
      && (user_threeday == threeday + 1 || user_threeday == threeday - 1)
  return true
  
  else
     return false
}
var a = prompt('Зимой и летом одним цветом');
if (a == 'ель'); {
  alert("верно");
} else {
  alert("неверно");
}
alert(end);

Понравилась статья? Поделить с друзьями:
  • Parseerror syntax error unexpected expecting laravel
  • Parity error что такое
  • Parameter parsing error vinf getopt not option please refer to the
  • Pantum ошибка 002
  • Pantum m7300fdn ошибка картриджа 2004