The error is no longer reproducible.
Presumably because of bug fixes in react-scripts 5.0.1. 1
Although it's no longer reproducible, the question and my self-answer still seems to be of interest to users of Angular, and possibly others.
I will leave the question largely as it was when I asked it in March 2022.
The zip file containing the source files of the React app is here. The only difference compared to 2022 is that I've replaced the react-scripts version 4.0.3 with 5.0.1.
In Visual Studio Code, I get
Parsing error: The keyword 'import' is reserved.
I provide my .eslintrc.json and package.json files in Section 2 below.
Run npm install to install the project locally. 2
– This may take about 1–9 minutes, depending on your bandwidth and hardware.
Then npm start should open the project in the default web browser.
When I did this and hit F12, I got no errors but two warnings in the console of the browser.
The warnings are in line with the rules in .eslintrc.json (Section 2 below) :
'unUsedArgument' is defined but never used. Allowed unused args must match /^_/u no-unused-vars, and
'unUsedVariable' is assigned a value but never used. Allowed unused vars must match /^_/u no-unused-vars.

The error in the title had nothing to do with my choice of text editor.
This was easily confirmed by running ESLint from the command line.
$ npx eslint src
… Parsing error: The keyword 'import' is reserved …

package.json :
{
"name": "parsing-error",
"version": "0.1.0",
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.4.1",
"@testing-library/user-event": "^7.2.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version"
]
}
}
.eslintrc.json :
{
"rules": {
"no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
]
}
}
The error, Parsing error: The keyword 'import' is reserved, also shows up when I open App.js in VS Code.

I am using Visual Studio Code.
But, as already noted, the choice of text editor or IDE doesn't matter.
Note that – in addition to installing ESLint correctly via npm – you also have to install a plugin/extension for your specific integrated development environment (IDE).
In my case, I use the official VS Code ESLint extension.
npm install eslint --global) is not recommendedeslint-config-react-app@babel/eslint-parserbabel-eslint packagereact-scripts globally1
When I originally asked the question, react-scripts 4.0.3 was the latest version.
If I now use version 4.0.3, then I get other errors that have nothing to do with the question asked.
2
It's recommended to install ESLint locally.
This is what Create React App does.
For more information on how Create React App uses ESLint, see this post.
You absolutely should not be installing react-scripts globally.
As stated in the question, the error can no longer be reproduced.
This means there is no longer any valid suggestion to resolve the error.
I leave the rest of the answer mainly unaltered, in case others still find it helpful. *
Here is a simple solution – just move the rules attribute from
.eslintrc.json to the eslintConfig attribute of package.json.
1
And don't keep .eslintrc.json. Just delete it!
2
The package.json file will now be as follows.
package.json :
{
"name": "parsing-error",
"version": "0.1.0",
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.4.1",
"@testing-library/user-event": "^7.2.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "4.0.3"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app",
"rules": {
"no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
]
}
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version"
]
}
}
That's it! 3
Check to see that you were successful : \
npx eslint **/*.js
Expect to see :

No error. – Yay!
If your text editor (VS Code in my case) is still open, make sure that you restart it before expecting to see the error go away!
rules in package.json under eslintConfignpmpackage.json*
The one thing I've changed is the command for running ESLint from the command line – npx eslint **/*.js has the advantage of working fine for the new eslint.config.js file ("flat config") as well as for the old .eslintrc.* configuration files.
1 I got the idea from this post.
2
Don't run npm init @eslint/config either.
The error(s) will persevere if you don't delete .eslintrc.json!
3
A. If you suspect that you may have a global installation of ESLint, first run:
npm uninstall eslint --global
B. If you have already run npm install – as suggested on line 7 of the question – then you shouldn't need to run npm install eslint --save-dev to install ESLint, because having react-scripts in package.json means that ESLint gets installed when running npm install.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With