防止 TypeScript 编译器退出批处理脚本

Dae*_*ast 3 batch-file typescript

我有一个名为run.bat的文件,它应该编译 TypeScript 文件,然后在 Node.js 中运行输出的 JavaScript 文件:

tsc
node index.js
Run Code Online (Sandbox Code Playgroud)

问题是 TypeScript 编译器在完成编译后退出批处理脚本,因此该命令node index.js永远不会被执行。

如何保证之后的命令tsc得到执行?

我尝试查看编译器选项,但无法找到任何选项来阻止 TypeScript 编译器退出批处理脚本。

T.J*_*der 8

在 Windows 上,tsc是一个批处理文件。默认情况下,当您从批处理文件调用批处理文件时,它永远不会返回。

要调用它并在完成后将控制权返回到批处理文件,请使用call

call tsc
node index.js
Run Code Online (Sandbox Code Playgroud)

如果您好奇,该tsc.bat文件如下所示:

@ECHO off
SETLOCAL
CALL :find_dp0

IF EXIST "%dp0%\node.exe" (
  SET "_prog=%dp0%\node.exe"
) ELSE (
  SET "_prog=node"
  SET PATHEXT=%PATHEXT:;.JS;=;%
)

"%_prog%"  "%dp0%\node_modules\typescript\bin\tsc" %*
ENDLOCAL
EXIT /b %errorlevel%
:find_dp0
SET dp0=%~dp0
EXIT /b
Run Code Online (Sandbox Code Playgroud)