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 尝试查找要导入的错误文件的主要内容,如果未能解决你的问题,请参考以下文章
带有craco的故事书-叫一个不同版本的react-scripts
create-react-app 错误:找不到模块“react-scripts/scripts/init.js”
离子服务命令卡在“ [react-scripts] 文件已成功发出,等待类型检查结果...”
Springboot + mybatis + React+redux+React-router+antd+Typescript: React+Typescrip项目的搭建