如何添加复制文件的 post tsc 构建任务?

How to add a post tsc build task that copy files?

如何在 tsc 构建任务之后向 VSCode 添加另一个任务,将文件从 x 复制到 y?

您可以使用像 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

您可以为此使用 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"
}

这里有 2 个脚本 htmlviews 用于复制和任务 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 脚本。

如果您 运行 正在执行某种 "developer mode" 并且需要 --watch 将文件更改为 运行 每次编译后的任务,我更喜欢使用tsc-watch 来完成这个。

例如,在package.json中:

{
  "scripts": {
    "dev": "tsc-watch --onSuccess=\"yarn otherThing\"",
    "otherThing": "echo \"hi\""
  }
}