如何在VSCode上添加另一个任务,在tsc构建任务之后将文件从x复制到y?
答案 0 :(得分:9)
您可以使用npm scripts
。例如我的package.json
:
"scripts": {
"compile": "tsc -p . ",
"html": "cp -r ./src/public/ ./bin/public/",
"views": "cp -r ./src/views/ ./bin/views/",
"build": "npm run compile && npm run views && npm run html"
}
这里有两个用于复制的脚本html
和views
以及任务build
同时运行它们。
在tasks.json
我有下一个:
{
"version": "0.1.0",
"command": "npm",
"isShellCommand": true,
"showOutput": "silent",
"suppressTaskName": true,
"tasks": [
{
"taskName": "build",
"args": [
"run",
"build"
]
}
]
}
因此shift+cmd+B
将运行npm build
脚本。
答案 1 :(得分:6)
你可以使用像gulp这样的任务运行来完成这个......
您可以配置vscode以运行下面的build
任务,这取决于compile
任务。
var gulp = require('gulp'),
exec = require('child_process').exec;
gulp.task('build', ['compile'], function () {
return gulp.src('./config/**/*.json')
.pipe(gulp.dest('./dist'));
});
gulp.task('compile', function (done) {
exec('tsc -p ./app', function (err, stdOut, stdErr) {
console.log(stdOut);
if (err){
done(err);
} else {
done();
}
});
});
有关于通过vscode运行gulp任务的文档:https://code.visualstudio.com/Docs/tasks
答案 2 :(得分:0)
如果您以某种“开发人员模式”运行,并且需要--watch
进行文件更改以在每次编译后运行任务,我更喜欢使用tsc-watch来完成此任务。
例如,在package.json
中:
{
"scripts": {
"dev": "tsc-watch --onSuccess=\"yarn otherThing\"",
"otherThing": "echo \"hi\""
}
}