Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React-Typescript:第0行:分析错误:无法读取属性';名称';未定义的_Reactjs_Typescript_Create React App_React Scripts_React Typescript - Fatal编程技术网

Reactjs React-Typescript:第0行:分析错误:无法读取属性';名称';未定义的

Reactjs React-Typescript:第0行:分析错误:无法读取属性';名称';未定义的,reactjs,typescript,create-react-app,react-scripts,react-typescript,Reactjs,Typescript,Create React App,React Scripts,React Typescript,今天,我突然开始在一个用Typescript构建的项目上出现构建错误。在一个(或它引用的任何东西)几个星期没有更改的文件中,我开始得到: ./path/to/my/file.ts Line 0: Parsing error: Cannot read property 'name' of undefined 这个错误最初出现在我们的CI上,可以通过在服务器上手动构建来复制,在更新所有包之后,我最终可以在自己的计算机上复制(运行得非常好)。现在,即使我撤销了我的项目的旧(构建)承诺,我也无法

今天,我突然开始在一个用Typescript构建的项目上出现构建错误。在一个(或它引用的任何东西)几个星期没有更改的文件中,我开始得到:

./path/to/my/file.ts
  Line 0:  Parsing error: Cannot read property 'name' of undefined
这个错误最初出现在我们的CI上,可以通过在服务器上手动构建来复制,在更新所有包之后,我最终可以在自己的计算机上复制(运行得非常好)。现在,即使我撤销了我的项目的旧(构建)承诺,我也无法构建它。我已将
warn.lock
提交到我的回购协议中,但即使使用旧的
package.json
warn.lock
(我删除
node\u模块并执行
warn
),我也无法构建

这个错误是从今天开始的

原因可能是什么


我的(可能相关)版本:

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:

问题显然是由依赖项的某些(对等?)依赖项的错误配置引起的,
react scripts
使用typescript模板。它消失了。请确保更新您的依赖项,清除
节点\ u模块
,甚至清除
包锁.json
纱线锁
,然后现在再次尝试新版本。

I

npx创建反应应用程序我的应用程序--模板类型脚本

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

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

rm纱线锁和&rm-rf节点模块和npm i

之后,您可以运行:


无论是
纱线开始
还是
npm开始

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

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

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

从“../assets/img/some icon.svg”导入{ReactComponent as SomeIcon};
上面的答案帮助我找到了罪犯我运行了
rm-rf节点_模块package-lock.json&&npm I&&npm start
,这导致显示了真正的错误(而不是毫无帮助的晦涩的“第0行:解析错误:无法读取未定义的属性“名称”)


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

发生此错误的原因是您的typescript与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脚本对我有效的问题
react scripts 3.4.0
可能不支持
typescript 3.7.5

我也有同样的问题,你找到错误的原因了吗?@Kenjoe问题现在自行解决了。可能是对依赖的对等依赖的一些错误配置。不,没有解决我的问题。每晚更新到3.9,但仍然是一样的。在4.0上,仍然遇到同样的问题。奇怪的是,升级到
3.8.X
没有用,清除的
node\u模块再次安装,很好地将TS升级到3.8.X修复了我的eslint问题,但我一直失败,直到清除了node\u模块和我的*-lock.json文件。我还关闭并重新打开了我的IDE,现在一切正常。在2020年8月,我通过将Correlot自动升级到
^4.0.2
后将Typescript回滚到
^3.9.5
解决了这个问题。YMMV如果您在升级到TS 4.0后遇到此问题,那是因为create react app尚不支持TS 4.0(或者更准确地说,它的依赖项不支持)。您可以通过降级TS,使用CRA 4.0的预发布版本,或根据调用
cretae react app
强制固定您的TS eslint和解析器依赖项来修复。这解决了我的问题。尽管如此,在尝试了几次删除
纱线后,我还是设法让应用程序使用
纱线编译。锁定
并运行
纱线
为我做到了!只需删除
节点\u模块
,然后删除
纱线
,就这样。