我很惊讶这不是我能找到的文档 - 但是有没有办法告诉tsc
针对目录中的所有文件及其子项运行而不经过整个{ {1}}设置?
答案 0 :(得分:10)
不是我知道的。在没有tsc
的命令行中使用tsconfig.json
要求您单独指定每个文件,如下所示:
tsc MyFile1.ts MyFile2.ts MyFile3.ts
但是,看起来您只需在TypeScript目录的根目录下创建一个空的tsconfig.json
,它就可以执行您想要的操作。来自https://github.com/Microsoft/TypeScript/wiki/tsconfig.json:
如果
"files"
中没有tsconfig.json
属性,则编译器默认包含所有包含目录和子目录中的TypeScript(* .ts或* .tsx)文件。
答案 1 :(得分:3)
你可以使用globs
tsc x/file1.ts x/file2.ts x/file3.ts
应该相当于
tsc x/*.ts
答案 2 :(得分:0)
如果项目文件夹中有tsconfig.json文件,则可以直接输入
tsc这个命令会编译当前文件夹中的所有ts文件,如果你没有tsconfig.json文件,你可以输入:'
tsc -init
答案 3 :(得分:0)
这可能有点过头了,但我刚刚写了一个PS函数在VS Code中用作任务;
function CompileTypeScriptFiles($folder) {
$tsFiles = Get-ChildItem $folder -Filter "*ts" -Recurse
$tsFiles | ForEach-Object {
$tsFile = $_.FullName;
$options = $tsFile + " --outDir js --sourceMap"
Start-Process "tsc" $options
}
}
答案 4 :(得分:0)
Windows用户需要使用for
循环:
for %f in (./path/*.ts) do npx tsc "./path/%f" --lib es2018 --outDir ./path/bin
如果在%
文件中使用bat
,请不要忘记将其翻倍:
for %%f in (./path/*.ts) do npx tsc "./path/%%f" --lib es2018 --outDir ./path/bin
答案 5 :(得分:0)
我通过运行以下命令在Linux / Mac上解决了这个问题:
pushd dir && tsc && popd
看起来目录中需要有一个tsconfig.json文件。