如何配置 VS Code 的 "tasks.json" 来构建所有 .ts 文件
How to configure VS Code's "tasks.json" to build all .ts files
可能之前有人问过这个问题,我很抱歉重复了 post 只是将我重定向到另一个线程。
是否可以配置 VS Code 的 "tasks.json" 以 编译文件夹 中的所有 .ts 文件。我知道我可以像这样手动将路径添加到 .ts 文件:
"args": [ HelloWorld.ts ],
它确实编译了 HelloWorld.ts 但我不知道如何设置 tasks.json 文件夹中的 all.ts 文件被编译。
我看过一些教程,它们都建议简单地删除 "HelloWorld.ts",但这不起作用,因为根本没有编译任何 .ts 文件。
这是我在 VS Code 中的整个 tasks.json 文件:
{
"version": "0.1.0",
// The command is tsc. Assumes that tsc has been installed using npm install -g typescript
"command": "tsc",
// The command is a shell script
"isShellCommand": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "always",
// args is the HelloWorld program to compile.
"args": [ "HelloWorld.ts" ],
// use the standard tsc problem matcher to find compile problems
// in the output.
"problemMatcher": "$tsc"
}
创建一个 _all.ts 文件,添加您要编译的所有文件的引用并将其传递给 args 参数。
它将输出一个包含所有转译代码的文件。
希望对您有所帮助
这对您的任务来说可能有点矫枉过正,但对于我的项目,我使用 gulp 并且得到了 VSCode 的良好支持。
首先,您应该为您的项目设置 tsconfig.json,您可以在其中排除不需要的文件。我发现排除不需要的内容比包含需要的内容更容易。对于大型项目尤其如此。
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "commonjs",
"target": "es5",
"sourceMap": true,
"outDir": "dist",
"declaration": true
},
"exclude": [
"node_modules",
"dist",
".vscode",
"docs"
]
}
这就是您的 tasks.json 的样子:
{
"version": "0.1.0",
"command": "node",
"windows": {
"command": "node.exe"
},
"isShellCommand": true,
"tasks": [
{
"taskName": "build-debug",
"args": ["${workspaceRoot}/node_modules/gulp/bin/gulp.js", "build-debug"],
"isBuildCommand": true,
"suppressTaskName": true,
"problemMatcher": [
"$tsc"
]
}
]
}
注意我这里使用的是本地安装的gulp。
这里是示例 gulpfile.js:
"use strict";
var gulp = require('gulp');
var ts = require('gulp-typescript');
var merge = require('merge2');
var sourcemaps = require('gulp-sourcemaps');
var del = require('del');
var tsProject = ts.createProject('tsconfig.json');
gulp.task('build-debug', function() {
del.sync("dist");
var tsResult = tsProject.src()
.pipe(sourcemaps.init())
.pipe(ts(tsProject));
return merge([
//Build typescript to dist folder
// tsResult.dts
// .pipe(gulp.dest('dist')),
tsResult.js
.pipe(sourcemaps.write("./", { sourceRoot: __dirname }))
.pipe(gulp.dest('dist')),
});
并且不要忘记将相应的开发依赖项添加到您的 package.json:
"devDependencies": {
"gulp": "latest",
"gulp-typescript": "latest",
"gulp-sourcemaps": "latest",
"merge2": "latest",
"del": "latest"
}
希望对您有所帮助。
在您的 tasks.json 中删除 "args" 键的方括号内容:
"args": []
确保您也有 tsconfig.json 文件。
这为我成功编译了所有 .ts 文件。
正如@mishap 所说,但他的回答缺少的是 "args" 应该有一个空的 space,如下所示:
"args": [ ]
而不是:
"args": []
因为这些参数被传递给 cmd/terminal 执行 tsc 重要的是 space 在 "args" 的 tasks.json.
这对我有用,而不是完全删除 args。
"args": ["-p", "${workspaceRoot}"]
有许多预定义变量可供您使用,它们将在运行时被替换。此页面以获取更多信息:https://code.visualstudio.com/docs/editor/tasks#_variable-substitution
--==========================
- VS Code - Setup TypeScript Compiler
- source : https://code.visualstudio.com/Docs/languages/typescript
--==========================
1/ create a file "tsconfig.json"
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"sourceMap": true
}
}
2/ Create tasks.json :
- Ctrl+Shift+P ==> Configure Task Runner
- Select TypeScript - tsconfig.json.
{
// See http://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"args": ["-p", "."],
"showOutput": "silent",
"problemMatcher": "$tsc"
}
3/ Run the Build Task : Ctrl+Shift+B (Run Build Task)
可能之前有人问过这个问题,我很抱歉重复了 post 只是将我重定向到另一个线程。
是否可以配置 VS Code 的 "tasks.json" 以 编译文件夹 中的所有 .ts 文件。我知道我可以像这样手动将路径添加到 .ts 文件:
"args": [ HelloWorld.ts ],
它确实编译了 HelloWorld.ts 但我不知道如何设置 tasks.json 文件夹中的 all.ts 文件被编译。
我看过一些教程,它们都建议简单地删除 "HelloWorld.ts",但这不起作用,因为根本没有编译任何 .ts 文件。
这是我在 VS Code 中的整个 tasks.json 文件:
{
"version": "0.1.0",
// The command is tsc. Assumes that tsc has been installed using npm install -g typescript
"command": "tsc",
// The command is a shell script
"isShellCommand": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "always",
// args is the HelloWorld program to compile.
"args": [ "HelloWorld.ts" ],
// use the standard tsc problem matcher to find compile problems
// in the output.
"problemMatcher": "$tsc"
}
创建一个 _all.ts 文件,添加您要编译的所有文件的引用并将其传递给 args 参数。
它将输出一个包含所有转译代码的文件。
希望对您有所帮助
这对您的任务来说可能有点矫枉过正,但对于我的项目,我使用 gulp 并且得到了 VSCode 的良好支持。
首先,您应该为您的项目设置 tsconfig.json,您可以在其中排除不需要的文件。我发现排除不需要的内容比包含需要的内容更容易。对于大型项目尤其如此。
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "commonjs",
"target": "es5",
"sourceMap": true,
"outDir": "dist",
"declaration": true
},
"exclude": [
"node_modules",
"dist",
".vscode",
"docs"
]
}
这就是您的 tasks.json 的样子:
{
"version": "0.1.0",
"command": "node",
"windows": {
"command": "node.exe"
},
"isShellCommand": true,
"tasks": [
{
"taskName": "build-debug",
"args": ["${workspaceRoot}/node_modules/gulp/bin/gulp.js", "build-debug"],
"isBuildCommand": true,
"suppressTaskName": true,
"problemMatcher": [
"$tsc"
]
}
]
}
注意我这里使用的是本地安装的gulp。
这里是示例 gulpfile.js:
"use strict";
var gulp = require('gulp');
var ts = require('gulp-typescript');
var merge = require('merge2');
var sourcemaps = require('gulp-sourcemaps');
var del = require('del');
var tsProject = ts.createProject('tsconfig.json');
gulp.task('build-debug', function() {
del.sync("dist");
var tsResult = tsProject.src()
.pipe(sourcemaps.init())
.pipe(ts(tsProject));
return merge([
//Build typescript to dist folder
// tsResult.dts
// .pipe(gulp.dest('dist')),
tsResult.js
.pipe(sourcemaps.write("./", { sourceRoot: __dirname }))
.pipe(gulp.dest('dist')),
});
并且不要忘记将相应的开发依赖项添加到您的 package.json:
"devDependencies": {
"gulp": "latest",
"gulp-typescript": "latest",
"gulp-sourcemaps": "latest",
"merge2": "latest",
"del": "latest"
}
希望对您有所帮助。
在您的 tasks.json 中删除 "args" 键的方括号内容:
"args": []
确保您也有 tsconfig.json 文件。 这为我成功编译了所有 .ts 文件。
正如@mishap 所说,但他的回答缺少的是 "args" 应该有一个空的 space,如下所示:
"args": [ ]
而不是:
"args": []
因为这些参数被传递给 cmd/terminal 执行 tsc 重要的是 space 在 "args" 的 tasks.json.
这对我有用,而不是完全删除 args。
"args": ["-p", "${workspaceRoot}"]
有许多预定义变量可供您使用,它们将在运行时被替换。此页面以获取更多信息:https://code.visualstudio.com/docs/editor/tasks#_variable-substitution
--==========================
- VS Code - Setup TypeScript Compiler
- source : https://code.visualstudio.com/Docs/languages/typescript
--==========================
1/ create a file "tsconfig.json"
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"sourceMap": true
}
}
2/ Create tasks.json :
- Ctrl+Shift+P ==> Configure Task Runner
- Select TypeScript - tsconfig.json.
{
// See http://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"args": ["-p", "."],
"showOutput": "silent",
"problemMatcher": "$tsc"
}
3/ Run the Build Task : Ctrl+Shift+B (Run Build Task)