Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Typescript类型检查步骤包含到`build.sh`脚本文件中?_Typescript_Build_Sh_Typechecking_Tsc - Fatal编程技术网

如何将Typescript类型检查步骤包含到`build.sh`脚本文件中?

如何将Typescript类型检查步骤包含到`build.sh`脚本文件中?,typescript,build,sh,typechecking,tsc,Typescript,Build,Sh,Typechecking,Tsc,我想在构建过程中加入类型检查 我将构建过程保存在build.sh文件中,其中调用多个CLI,如: // TYPE CHECK HERE <--- rimraf dist webpack... babel... 我故意将此错误添加到testScript.ts中 您可以看到,test.sh脚本的其余部分一直在运行。是否有办法检查tsc呼叫是否发现任何错误?然后我可以检查结果并在该点停止脚本。以下是我如何实现这一点的: build.sh tsc src/testScript.ts --noE

我想在构建过程中加入类型检查

我将构建过程保存在
build.sh
文件中,其中调用多个CLI,如:

// TYPE CHECK HERE <---
rimraf dist
webpack...
babel...
我故意将此错误添加到
testScript.ts


您可以看到,
test.sh
脚本的其余部分一直在运行。是否有办法检查
tsc
呼叫是否发现任何错误?然后我可以检查结果并在该点停止脚本。

以下是我如何实现这一点的:

build.sh

tsc src/testScript.ts --noEmit --skipLibCheck
echo "AFTER TSC"
TYPE_ERRORS="$(tsc --project ./tsconfig.json)"

if [[ -n $TYPE_ERRORS ]]; then
  echo "FOUND ERRORS"
  echo $TYPE_ERRORS
  echo "WILL EXIT NOW"
  exit
fi

echo "NO ERRORS WERE FOUND"
TYPE_ERRORS="$(tsc --project ./tsconfig.json)"

if [[ -n $TYPE_ERRORS ]]; then
  echo "FOUND ERRORS"
  tsc --project ./tsconfig.json   # THIS WILL LOG PRETTIER LOGS
  echo "WILL EXIT NOW"
  exit
fi

echo "NO ERRORS WERE FOUND"
tsc
的结果将存储在
$TYPE\u ERRORS
中。如果结果不是空的,它将记录错误并退出脚本。否则,脚本将继续并记录
未发现任何错误

注意:您也可以再次调用
tsc
命令,而不是通过执行
echo$TYPE_errors
来记录错误,因为日志会更漂亮(带有颜色)。比如:

build.sh

tsc src/testScript.ts --noEmit --skipLibCheck
echo "AFTER TSC"
TYPE_ERRORS="$(tsc --project ./tsconfig.json)"

if [[ -n $TYPE_ERRORS ]]; then
  echo "FOUND ERRORS"
  echo $TYPE_ERRORS
  echo "WILL EXIT NOW"
  exit
fi

echo "NO ERRORS WERE FOUND"
TYPE_ERRORS="$(tsc --project ./tsconfig.json)"

if [[ -n $TYPE_ERRORS ]]; then
  echo "FOUND ERRORS"
  tsc --project ./tsconfig.json   # THIS WILL LOG PRETTIER LOGS
  echo "WILL EXIT NOW"
  exit
fi

echo "NO ERRORS WERE FOUND"
来自
echo$TYPE_ERRORS
的日志将仅为纯文本(无颜色)


上面的代码将在
tsconfig.json
中查看应该应用哪些编译器选项,以及必须编译哪些文件夹

但您也可以指定文件夹/文件,如:

tsc src/someFile.ts --noEmit --someOtherOption

以下是我如何从npm脚本调用
.sh
文件的方法:

package.json

{
  "scripts": {
    "build: "./my-bash-scripts-folder/build.sh"
  }
}
然后我像往常一样以
npm运行build
的方式运行它


更新:使用退出代码

您可以使用来自
tsc
脚本的来了解它是否抛出了任何错误

成功运行的标准是
0

tsc --project ./tsconfig.json
TYPE_CHECK_EXIT_CODE=$?

if [[ $TYPE_CHECK_EXIT_CODE == "0" ]]; then
  echo "TYPE CHECK - SUCCESS"
else
  echo "TYPE CHECK - FAILED"
fi

是的,您应该使用
tsc
。见文件<代码>tsc src/*.ts@尤萨林船长谢谢。它的工作原理与运行类型检查一样。但它不会阻止脚本在
tsc
发现错误后继续运行。我怎么能实现这个呢?这太神奇了)谢谢。自从我开始使用
.sh
脚本文件以来,我能够在测试、构建、启动和部署脚本中做更多的自定义工作。在你回答之后,我会重新考虑我对npm脚本的看法。你能推荐一些资源来了解更多关于bash脚本的信息吗?@captain yossarian我经常在谷歌上搜索。但我想我已经读了其中的部分内容,这对我也有很大帮助。非常感谢!