Taro 模板中的 baseUrl 弃用警告与 TypeScript 版本冲突
Taro 4.2.1 创建的项目里保留了 baseUrl。使用 TypeScript 6 打开后,VS Code 会提示这项配置已经弃用。看起来照提示加一行就行,结果命令行检查又报了另一个错。
原始问题
VS Code 一直提示:
选项“baseUrl”已弃用,并将在 TypeScript 7.0 中停止工作。
指定 compilerOption“ignoreDeprecations”:“6.0”以使此错误静音。照提示加入下面的配置后,编辑器安静了:
"ignoreDeprecations": "6.0"但项目命令随即报错:
tsconfig.json:3:26 - error TS5103: Invalid value for '--ignoreDeprecations'.问题出在两个 TypeScript 版本上。VS Code 使用的版本认识 6.0,而 npm run check:types 调用的是项目安装的 TypeScript 5.8.3。编辑器给出的修复,命令行编译器不接受。
这个项目没有 typecheck 脚本,实际脚本名是 check:types:
npm run check:typesnpm run check 也会调用它,然后继续执行 lint 和 style 检查。
这个 baseUrl 从哪里来的
它不是业务代码后来加上的。Taro 4.2.1 的项目模板本身就包含:
"baseUrl": "."所以,用新版 TypeScript 打开按这个模板创建的项目,就会直接看到弃用提示。VS Code 建议加入 ignoreDeprecations: "6.0",项目安装的旧版 TypeScript 又会拒绝它,来回折腾却没有解决 baseUrl 本身的问题。
实际处理
路径映射已经写成相对 tsconfig.json 的形式:
"paths": {
"@/*": ["./src/*"]
}这种写法不需要 baseUrl。最终直接删除 baseUrl,也不再用 ignoreDeprecations 压住提示。
删除 baseUrl 后实际执行:
npm run build:weapp构建正常完成,路径别名和小程序构建都没有受到影响。
现在的判断
baseUrl 在这种配置里已经没有用途。与其保留它,再增加一项配置隐藏警告,不如直接删除。
如果别的 Taro 项目也遇到相同提示,先检查 paths 是否已经使用相对路径,再删除 baseUrl 并运行真实构建。不要只看 VS Code 是否安静,也不要只跑与项目版本不同的全局 TypeScript。
参考: