React Typescript: Line 0: Parsing error: Cannot read property 'name' of undefined

Viewed 17355

Today suddenly I started to get build errors on a project built with Typescript. In a file that (or anything it references) hasn't been changed in weeks, I started to get:

./path/to/my/file.ts
  Line 0:  Parsing error: Cannot read property 'name' of undefined

This error first appeared on our CI, could be replicated by manually building on the server, and I could finally reproduce on my own computer (which was running perfectly) after updating all packages. Now, even if I pull the old (building) commit of my project, I can't build it. I've got yarn.lock commited to my repo, but even with the old package.json and yarn.lock (I delete node_modules and do yarn), I can't build.

This error literally started out of blue today.

What could be the reason?


My (possibly relevant) versions:

yarn 1.22.4,
node v13.11.0,
typescript 3.7.5
react 16.12
react-scripts 3.4.0
macOS 10.15 Catalina
8 Answers

The problem apparently was caused by a misconfiguration of some (peer?) dependencies of a dependency, react-scripts with the TypeScript template. It went away. Make sure you update your dependencies, purge node_modules, even purge package-lock.json or yarn.lock, and try a fresh build again now.

I case of an app generated by

npx create-react-app my-app --template typescript

More precisely, create-react-app@3.4.1

The issue was solved by running the following command:

rm yarn-lock && rm -rf node_modules && npm i

After which you may run:

either yarn start or npm start

Just update typescript version to 3.8.x : Link

In my case, I just had to add an extra newline at the end of the ts file.

export * from './result';
export * from './request';
//new line here

This error occurs because your typescript is not compatible with your typescript-eslint plugins.

You can fix it by upgrading these two dependencies to the latest version.

"devDependencies": {
  "@typescript-eslint/eslint-plugin": "^4.6.0",
  "@typescript-eslint/parser": "^4.6.0",
}

Updating react-scripts worked for me. react-scripts 3.4.0 probably does not support typescript 3.7.5

In my case, the culprit was asset imports of non-existing files, e.g.:

import { ReactComponent as SomeIcon } from '../assets/img/some-icon.svg';

The answers above helped me find the culprit. I ran rm -rf node_modules package-lock.json && npm i && npm start, which caused the real errors to be shown (instead of the unhelpful cryptic "Line 0: Parsing error: Cannot read property 'name' of undefined")

Once I added the missing files, the errors went away.

In my case, this was because I had TS code under .\src which was referencing TS code under .\tools but I only had src in the include in my tsconfig.json, adding tools fixed the issue

Related