之前有人问过这个问题,如果有的话,我很抱歉重复的帖子只是将我重定向到另一个帖子。
是否可以将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"
}
答案 0 :(得分:3)
在你的tasks.json中删除" args"的方括号内容。键:
"args": []
确保你也确实有tsconfig.json文件。 这成功编译了所有.ts文件。
答案 1 :(得分:1)
对于你的任务来说可能有点过分,但对于我的项目,我使用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中添加相应的dev依赖项:
"devDependencies": {
"gulp": "latest",
"gulp-typescript": "latest",
"gulp-sourcemaps": "latest",
"merge2": "latest",
"del": "latest"
}
希望这有帮助。
答案 2 :(得分:0)
创建一个_all.ts文件,添加要编译的所有文件的引用,并将其传递给args参数。
它将输出包含所有已转换代码的单个文件。
我希望这会有所帮助
答案 3 :(得分:0)
正如@mishap所说,但他的回答是缺少的,那就是#" args"像这样:
"args": [ ]
而不是:
"args": []
当这些args被传递给执行 tsc 的cmd /终端时,重要的是有一个空格" "在" args"的任务.json。
答案 4 :(得分:0)
而不是完全删除args这对我有用。
"args": ["-p", "${workspaceRoot}"]
您可以使用一堆预先定义的变量,这些变量将在运行时被替换。此页面提供了更多信息:https://code.visualstudio.com/docs/editor/tasks#_variable-substitution
答案 5 :(得分:0)
--==========================
- 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)