react-script 导致 TypeScript 尝试查找要导入的错误文件

Posted

技术标签:

【中文标题】react-script 导致 TypeScript 尝试查找要导入的错误文件【英文标题】:react-script causes TypeScript to try to find the wrong file to import 【发布时间】:2020-11-03 12:10:07 【问题描述】:

我使用 React,我还使用 Relay,它会生成一些我的应用程序包含的 TypeScript 文件,并且在更改生成这些文件的目录后,TypeScript 抱怨它找不到它们,但有些奇怪。

例如,TypeScript 编译器是这样说的:

> react-scripts build
Creating an optimized production build...

.\src\pages\MyAccount.tsx
Cannot find file './__generated__/MyAccountMutation.graphql' in '.\src\pages'.


error Command failed with exit code 1.

这是真的,没有/src/pages/__generated__/MyAccountMutation.graphql,但MyAccount.tsx 不需要该文件。导入行是:

import MyAccountMutation from "../__generated__/MyAccountMutation.graphql"

没错,有一个/src/pages/../__generated__/MyAccountMutation.graphql(即/src/__generated__/MyAccountMutation.graphql)存在。

运行tsc 工作正常。 React 开发服务器也会出现这个问题。

任何想法为什么 React/TypeScript 会尝试获取错误的文件?

【问题讨论】:

【参考方案1】:

在使用 react-scripts 时,您可能也在使用 babel-plugin-relay/macro,对吗?宏也需要配置--artifactDirectory,但在使用 react-scripts 时这是不可能的。您有三个选择:

    从反应脚本中弹出并配置宏 使用像 CRACO 这样的“配置覆盖”来执行此操作(我没有这方面的经验)。 不要将--artifactDirectory 用于中继编译器。

【讨论】:

以上是关于react-script 导致 TypeScript 尝试查找要导入的错误文件的主要内容,如果未能解决你的问题,请参考以下文章

typeScrip泛型

react-scripts 需要旧版本的 webpack

带有craco的故事书-叫一个不同版本的react-scripts

create-react-app 错误:找不到模块“react-scripts/scripts/init.js”

离子服务命令卡在“ [react-scripts] 文件已成功发出,等待类型检查结果...”

Springboot + mybatis + React+redux+React-router+antd+Typescript: React+Typescrip项目的搭建