Windows本地使用Bazel构建TypeScript失败求助
回答
核心问题分析
手动执行时的PowerShell错误已经暴露关键问题:PowerShell会将{}解析为脚本块而非字符串参数,Bazel在Windows下调用.bat时如果默认使用PowerShell,就会触发同样的参数解析失败。此外,还需排查配置文件和规则兼容性问题。
分步解决方案
1. 切换到Command Prompt执行构建
避免PowerShell的参数解析干扰,直接在cmd中执行构建命令:
cmd /c "bazel build //packages/projectB:ts --enable_runfiles=true --verbose_failures"
或者配置Bazel默认使用cmd作为shell,在项目根目录创建.bazelrc文件,添加:
build --shell_executable=C:/Windows/system32/cmd.exe
2. 确保tsconfig.json存在且合法
validator.bat用于验证TypeScript配置,若项目中缺少tsconfig.json或配置不完整,会导致验证失败。创建基础配置文件:
{ "compilerOptions": { "target": "ES2020", "module": "commonjs", "strict": true }, "include": ["say-hello.ts"] }
3. 更新aspect_rules_ts至最新稳定版
当前警告提到Windows不支持ts_project worker,后续版本已修复部分Windows兼容性问题。更新WORKSPACE中的规则版本,重新同步依赖。
4. 验证MSYS2路径配置
确保MSYS2的bin目录(如C:\msys64\usr\bin)已添加到系统环境变量PATH中,Bazel在Windows下依赖MSYS2提供的类Unix工具链,路径缺失会导致文件解析错误。
内容的提问来源于stack exchange,提问作者Charles HETIER
相关产品推荐
相关产品推荐

