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

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

今天突然开始在使用 Typescript 构建的项目上出现构建错误。在一个数周内未更改的文件(或其引用的任何内容)中,我开始得到:

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

这个错误首先出现在我们的 CI 上,可以通过在服务器上手动构建来复制,更新所有包后我终于可以在自己的计算机上重现(运行 完美) .现在,即使我提取项目的旧(构建)提交,我也无法构建它。我已将 yarn.lock 提交到我的回购协议中,但即使使用旧的 package.jsonyarn.lock(我删除 node_modules 并执行 yarn),我也可以建造。

这个错误是今天突然出现的。

可能是什么原因?


我的(可能相关的)版本:

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

只需将 typescript 版本更新为 3.8.x : Link

这个问题显然是由依赖项的某些(对等?)依赖项配置错误引起的,react-scripts 使用 TypeScript 模板。它走了。确保更新您的依赖项,清除 node_modules,甚至清除 package-lock.jsonyarn.lock,然后再次尝试重新构建。

我是

生成的应用程序案例

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

更准确地说,create-react-app@3.4.1

问题已通过 运行以下命令解决:

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

之后您可以 运行:

yarn startnpm start

在我的例子中,我只需要在 ts 文件的末尾添加一个额外的换行符。

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

就我而言,罪魁祸首是不存在文件的资产导入,例如:

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

以上答案帮助我找到了罪魁祸首。 我 运行 rm -rf node_modules package-lock.json && npm i && npm start, 导致显示真正的错误(而不是无用的神秘 "第 0 行:解析错误:无法读取未定义的 属性'name'")

添加丢失的文件后,错误就消失了。

出现此错误是因为您的打字稿与您的 typescript-eslint 插件不兼容。

您可以通过将这两个依赖升级到最新版本来修复它。

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

在我的例子中,这是因为我在 .\src 下有 TS 代码,它引用了 .\tools 下的 TS 代码,但我在 include 中只有 src我的 tsconfig.json,添加 tools 解决了问题

更新反应脚本对我有用。 react-scripts 3.4.0可能不支持typescript 3.7.5