Код Visual Studio: отладка с помощью Mocha, Babel и ECMAScript 6 - PullRequest
0 голосов
/ 19 февраля 2019

Я пытался настроить VSC для отладки тестов Mocha с использованием точек разрыва в коде.

Структура проекта следующая:

app / Resources / assets / js: папка с исходниками test-js: папка с тестами

Это моя конфигурация запуска для запуска текущего файла:

    {
        "name": "Mocha Test (current file)",
        "type": "node",
        "request": "launch",
        "preLaunchTask": "build-source-maps",
        "cwd": "${workspaceFolder}",
        "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
        "args": [
            "-u",
            "tdd",
            "--no-timeouts",
            "--require",
            "./mocha.bootstrap.js",
            "--colors",
            "${file}",
        ],
        "runtimeArgs": [
            "--nolazy"
        ],
        "sourceMaps": true,
        "outFiles": ["${workspaceRoot}/build/sourcemaps"],
        "internalConsoleOptions": "openOnSessionStart",
    }

Файл mocha.bootstrap.js содержит следующее:

require('ignore-styles')
require('jsdom-global/register')
require('babel-core/register')
require('babel-polyfill')
const { AbortController } = require('abortcontroller-polyfill/dist/cjs-ponyfill')

global.AbortController = AbortController
require('raf')

global.dataSources = []
global.fetchCache = []
global.debug = require('./app/Resources/assets/js/utils/DebugLogger')

window.dataSources = []
window.fetchCache = []
window.debug = global.debug
window.audbg = true

Как вы видите, я пытался скомпилировать исходные карты как предварительную задачу (которая в любом случае занимает не менее 10 секунд, так что это не очень практично):

{
    "version": "2.0.0",
    "command": "yarn",
    "isBackground": true,
    "tasks": [
        {
            "label": "build-source-maps",
            "type": "shell",
            "command": "yarn build-sourcemaps",
            "problemMatcher": []
        }
    ]
}

В пакете.json, под «script»:

"build-sourcemaps": "babel app/Resources/assets/js -d build/sourcemaps",

Проблема в том, что когда я устанавливаю точку останова, трассировка стека (и строка, на которой я на самом деле останавливаюсь) не совпадает с таковой в исходном коде.

Я точно что-то делаю не так, но я не знаю что.

Можете ли вы мне помочь?

Спасибо

...