Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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 Visual studio代码-仅编译保存或更改的文件_Typescript_Visual Studio Code - Fatal编程技术网

Typescript Visual studio代码-仅编译保存或更改的文件

Typescript Visual studio代码-仅编译保存或更改的文件,typescript,visual-studio-code,Typescript,Visual Studio Code,到目前为止我注意到的是,如果启用监视任务,typescript编译器将编译项目中的所有.ts文件。 是否有一种方法可以使它只编译更改的文件或保存的文件 谢谢有一些以增量编译TypeScript代码为目标的gulp插件: 我们在VSCode代码库中使用gulp tsb,它执行得非常好通过运行以下命令,您肯定有一个正在运行TypeScript编译器的构建任务: tsc 希望您正在使用tsconfig.json来配置编译 在这种情况下,您可以使用以下命令使TypeScript编译器处于“监视

到目前为止我注意到的是,如果启用监视任务,typescript编译器将编译项目中的所有
.ts
文件。 是否有一种方法可以使它只编译更改的文件或保存的文件


谢谢

有一些以增量编译TypeScript代码为目标的gulp插件:


我们在VSCode代码库中使用gulp tsb,它执行得非常好

通过运行以下命令,您肯定有一个正在运行TypeScript编译器的构建任务:

tsc
希望您正在使用
tsconfig.json
来配置编译

在这种情况下,您可以使用以下命令使TypeScript编译器处于“监视”模式,也称为“保存时编译”:


这将启动一个进程,该进程将持续监视您的TypeScript文件,并只编译必要的文件(“增量编译”)。

我愿意与VScode一起分享对我有用的内容。因为问题是在VScode的上下文中

使用以下tsconfig.json:

{
// This is the basic tsconfig recommended by vscode team for debugging.
// Info at: https://code.visualstudio.com/docs/typescript/typescript-tutorial
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "outDir": "out",
        "sourceMap": true
    }
}
使用以下launch.json(将从我们正在编辑的文件中删除): (如果需要,“程序”属性可以根据需要更改为所需文件,以便它始终可以从所需文件而不是我们正在编辑的文件启动)

给它几秒钟或更长的时间来完成第一次完整的编译

从那里开始,只需编辑您的typescript文件,并在需要时启动调试,它几乎总是在实际调试或执行之前自动编译文件,但如果没有,只需再次启动它,或者只需保存它,然后启动,文件在保存时会被编译,如果使用两个步骤保存,然后启动,它几乎总是在您启动时进行编译

由于机器资源的不同,不同环境下的体验也不同,但对我来说(实际上并不是超级计算机),它总是或几乎总是通过启动来很好地编译文件。如果不是,我只需再次启动它,或者保存,然后启动,正如前面提到的,这比为每次启动/调试编译所有内容要好得多



重要更新!!!:

改进的版本作为模板发布在以下存储库中(自动执行“tsc-w”任务):

我会避免将吞咽作为运行typescript编译器的一种方式。它只是添加了一层额外的插件代码,当维护人员感到厌烦时,很容易导致错误。取而代之的是,只需从NPM脚本中运行<代码> TSC命令,并在Project Road中建立<代码> TSCONFIG.JSON/COD>。对于较小的项目,请给出好的建议,但请参阅有关PyfF问题的关于当前TyrScript增量编译的讨论。code>tsc——watch比gulp tsb在vscode代码库中重新编译单个文件更改的速度慢30多倍(20秒vs 600毫秒)。在这一点得到解决之前,对于我较小的项目,需要使用这些工具。我假设TypeScript团队最终会优化他们的增量编译,同时继续使用官方机制。作为一名25岁的老开发人员,我对为短期性能赢家而构建的第三方插件变得过时、过时和无法维护感到厌倦。如果您现在需要性能优势,则无需做出决定。我只是讨厌维护东西。
{
// This is the basic tsconfig recommended by vscode team for debugging.
// Info at: https://code.visualstudio.com/docs/typescript/typescript-tutorial
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "outDir": "out",
        "sourceMap": true
    }
}
{
// This is de default debugging launcher created by vscode when having 
// a tsconfig.json and a .ts file to debug.
//
// Comments are provided to inform of attributes additions, deletions, or changes
"version": "0.2.0",
"configurations": [
    {
        "type": "pwa-node",
        "request": "launch",
        "name": "Launch Program",
        "skipFiles": [
            "<node_internals>/**"
        ],
        "outFiles": [
            "${workspaceFolder}/out/**/*.js"
        ],
        // attribute removed 
        // (use "tsc -w" from terminal instead, to compile only changed/saved files on the go)
        // "preLaunchTask": "tsc: build - tsconfig.json",
        //
        // attribute changed 
        // (it originally pointed to a specific file)
        "program": "${file}",
        //
        // attributes added
        "internalConsoleOptions": "openOnSessionStart"
        // , "args": [
        //    "anArgument"
        // ]
    }
]
tsc -w