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