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

Mic*_*elS 15 typescript visual-studio-code

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

Iur*_*ilo 12

你可以用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"
}
Run Code Online (Sandbox Code Playgroud)

这里有2个脚本html,views用于复制和任务build同时运行它们.在tasks.json我旁边:

{
    "version": "0.1.0",
    "command": "npm",
    "isShellCommand": true,
    "showOutput": "silent",
    "suppressTaskName": true,
    "tasks": [
        {
            "taskName": "build",
            "args": [
                "run",
                "build"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

所以shift+cmd+B会运行npm build脚本.

  • `ncp` 是一个跨平台 npm 包,其工作方式类似于 `cp -r`。 (2认同)

Bro*_*cco 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();
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

这里有关于通过vscode运行gulp任务的文档:https ://code.visualstudio.com/Docs/tasks