create-react-app+typescript alias 无效问题记录

create-react-app 项目下 alias 无效问题解决

人狠话不多, 不想看废话点击到达解决方法

问题背景

背景: 使用了脚手架 create-react-app 创建项目, 使用的是 typescript 结果使用 src/*** 的时候提示找不到

开始查找问题

从 webpack 配置开始查问题

开始从 config/webpack.conf.js 文件的 resolve.alias 找, 发现引用了 modules.webpackAliases, 打印一下发现为 {} 空对象
在这里插入图片描述

modules

接着找到 modules 就是 同目录下的 modules.js, 找 webpackAliases 来源, 发现来自 getWebpackAliases 函数
在这里插入图片描述
在这里插入图片描述

获取 alias 的逻辑(问题关键)

来到 getWebpackAliases 函数, 通过打印发现 baseUrl 变量时 undefined, 所以没能返回预期的内容, 初步确定问题在于没有 baseUrl, 而baseUrl 来源于参数 options
在这里插入图片描述

找到缺少数据的来源

找回 getModules 函数中传入 getWebpackAliasesoptions 的来源, 会发现 options 其实就是来自根目录的 tsconfig.jsoncompilerOptions 字段
在这里插入图片描述

解决问题

结合上面结论: 缺少baseUrl, 就可以得到解决方法, 在 tsconfig.json 文件的 compilerOptions 字段补上 baseUrl 这个字段即可, 字段值为项目的根目录, 问题就得到解决了


结论(解决方法简单的有点搞笑)

在根目录的 tsconfig.json 文件的 compilerOptions 里添加字段 baseUrl 指向项目的根目录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值