34

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
Can Poyrazoğlu
  • 33,241
  • 48
  • 191
  • 389

8 Answers8

30

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.

Can Poyrazoğlu
  • 33,241
  • 48
  • 191
  • 389
  • 2
    Weird, upgraded to `3.8.X` to no avail, purged `node_modules` installed again and good to go – devonj Apr 22 '20 at 20:27
  • 1
    Updating TS to 3.8.x fixed my eslint issues, but I kept failing the build until I purged node_modules and my *-lock.json files. I also closed and reopened my IDE just to be sure, and now things are working. – George Apr 28 '20 at 14:31
  • 4
    In August 2020, I fixed this by rolling back Typescript to `^3.9.5` after an automatic dependabot upgrade to `^4.0.2`. YMMV – Jeff Aug 30 '20 at 21:39
  • 1
    If you are experiencing this issue after upgrading to TS 4.0, it is because create-react-app does not yet support TS 4.0 (or more accurately, it's dependencies don't). https://github.com/facebook/create-react-app/issues/9515 You can fix by downgrading TS, using a pre-release build of CRA 4.0, or force-pinning your ts-eslint an and parser dependencies per https://github.com/facebook/create-react-app/issues/9515 – sam256 Sep 22 '20 at 15:32
8

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

Mateja Petrovic
  • 3,799
  • 4
  • 25
  • 40
4

Just update typescript version to 3.8.x : Link

Phoebus
  • 57
  • 2
3

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
Jayantha Lal Sirisena
  • 21,216
  • 11
  • 71
  • 92
2

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.

Liran H
  • 9,143
  • 7
  • 39
  • 52
2

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",
}
Black
  • 9,541
  • 3
  • 54
  • 54
2

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

kshksdrt
  • 566
  • 4
  • 9
0

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

UnionP
  • 1,251
  • 13
  • 26