内容目录
背景
我编写了一个用于打包的批处理脚本(bat),其流程是先将 TypeScript 编译为 JavaScript,然后执行打包命令。由于我有多个项目需要执行 tsc
编译,但在执行第一个 tsc
后,后续命令无法继续执行。我一开始以为是写法问题,尝试多次修改仍未解决,最终通过查阅资料才定位到问题所在。
示例如下:
cd 项目1
tsc
cd 项目2
tsc
npm run build
解决方案
通过查阅资料发现,tsc
实际上是一个批处理文件(bat)。在 Windows 的 bat 脚本中,直接调用另一个 bat 文件时不会返回控制权,导致后续命令无法执行。解决方法是使用 call
命令来调用 tsc
,这样可以确保执行完后返回继续执行后续命令。
优化后的示例:
cd 项目1
call tsc
cd 项目2
call tsc
npm run build
这样就可以顺利执行所有命令,完成多个项目的编译与打包流程。