Компилировать (переносить), копировать файлы, отлаживать цепочки в vscode - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь настроить свою среду, чтобы иметь возможность привязать компиляцию к: - после компиляции (в том числе .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 ?

Спасибо всем заранее!

1 Ответ

0 голосов
/ 03 июля 2018

Добавьте параметр prelaunchtask в файл launch.json.

В какой бы конфигурации запуска вы не хотели, например:

launch.json

{
     "name": "Chrome : Launch with sourcemaps",

      "preLaunchTask": "transpile-and-copy",

     "type": "chrome",
     "request": "launch",
     "url": "http://localhost:3000",
     "webRoot": "${workspaceRoot}",
     "sourceMaps": true,
     "runtimeArgs": [
        "--remote-debugging-port=9222"
     ]
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...