typescript -tsc是否可以针对整个文件夹运行?

ma8fv8wu  于 2022-11-26  发布在  TypeScript
关注(0)|答案(7)|浏览(231)

我很惊讶这不在我能找到的文档中a-但是有没有什么方法可以告诉tsc对一个目录中的所有文件及其子目录运行,而不需要经过整个tsconfig.json设置?

laik7k3q

laik7k3q1#

据我所知没有。从命令行使用tsc而不使用tsconfig.json需要单独指定每个文件,如下所示:

tsc MyFile1.ts MyFile2.ts MyFile3.ts

然而,看起来你可以简单地在你的TypeScript目录的根目录下创建一个空的tsconfig.json(即{}),它就可以完成你想要的任务。
如果tsconfig.json中没有"files"属性,编译器预设会包含包含目录和子目录中的所有TypeScript(*.ts或 *.tsx)档案。

093gszye

093gszye2#

您可以使用globs

tsc x/file1.ts x/file2.ts x/file3.ts

应等同于

tsc x/*.ts
y0u0uwnf

y0u0uwnf3#

如果项目文件夹中有tsconfig.json文件,则可以直接键入
tsc此命令将编译当前文件夹中的所有ts文件,如果您没有tsconfig.json文件,则可以通过键入以下内容来生成该文件:'
tsc -初始化

epfja78i

epfja78i4#

这可能有些矫枉过正,但我只是编写了一个PS函数,作为一个任务在VS代码中使用;

function CompileTypeScriptFiles($folder) {
    $tsFiles = Get-ChildItem $folder -Filter "*ts" -Recurse
    $tsFiles | ForEach-Object {
        $tsFile = $_.FullName;
        $options = $tsFile + " --outDir js --sourceMap"
        Start-Process "tsc" $options 
    }
}
niknxzdl

niknxzdl5#

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
laik7k3q

laik7k3q6#

您可以建置所有档案,例如:

tsc ./**/*.ts
kzmpq1sx

kzmpq1sx7#

我在Linux/Mac上通过运行以下命令解决了这个问题:

pushd dir && tsc && popd

看起来目录中需要有一个tsconfig.json文件。

相关问题