Я пытался настроить 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",
Проблема в том, что когда я устанавливаю точку останова, трассировка стека (и строка, на которой я на самом деле останавливаюсь) не совпадает с таковой в исходном коде.
Я точно что-то делаю не так, но я не знаю что.
Можете ли вы мне помочь?
Спасибо