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.json
和 yarn.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.json
或 yarn.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 start
或 npm 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
今天突然开始在使用 Typescript 构建的项目上出现构建错误。在一个数周内未更改的文件(或其引用的任何内容)中,我开始得到:
./path/to/my/file.ts
Line 0: Parsing error: Cannot read property 'name' of undefined
这个错误首先出现在我们的 CI 上,可以通过在服务器上手动构建来复制,更新所有包后我终于可以在自己的计算机上重现(运行 完美) .现在,即使我提取项目的旧(构建)提交,我也无法构建它。我已将 yarn.lock
提交到我的回购协议中,但即使使用旧的 package.json
和 yarn.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.json
或 yarn.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 start
或 npm 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