Я пытаюсь настроить свою среду, чтобы иметь возможность привязать компиляцию к:
- после компиляции (в том числе .ts с включением) скопируйте некоторые файлы в другую папку
- всегда компилировать (и таким образом копировать файлы) перед запуском / отладкой
Я могу копировать файлы при каждом запуске компиляции, используя gulp
const gulp = require('gulp');
const gulpTs = require('gulp-typescript');
const path = require('path');
const fs = require('fs');
const colors = require('colors');
const packageJson = JSON.parse(fs.readFileSync('./package.json'));
const tsProject = gulpTs.createProject('tsconfig.json');
const copyTs = true;
const copyDTs = false;
const copyJs = false;
const copyToDirs = [
"path1",
"path2",
"path3"]
.map(dirPath => path.join(dirPath, packageJson.name));
gulp.task('transpile-and-copy', function () {
tsProject.options.declaration = true;
const rawTs = tsProject.src();
const compiledTs = tsProject
.src()
.pipe(tsProject());
let missionName = "Copy of " + packageJson.name;
copyToDirs.forEach((dirPath) => {
try {
process.stdout.write('Copying'.yellow + ' to: ' + dirPath + ' ...');
if (copyTs)
rawTs.pipe(gulp.dest(dirPath));
if (copyJs)
compiledTs.js.pipe(gulp.dest(dirPath));
if (copyDTs)
compiledTs.dts.pipe(gulp.dest(dirPath));
console.log(" DONE".green);
} catch (error) {
console.log(" FAILED".red);
console.log((missionName + " failed - reason: " + error).red);
}
});
console.log((missionName + ' completed').green);
});
с заданием (tasks.json)
{
"version": "2.0.0",
"tasks": [
{
"identifier": "transpile-and-copy",
"type": "gulp",
"task": "transpile-and-copy",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
но как мне скомпилировать и скопировать файлы перед каждым F5 ?
Спасибо всем заранее!